作者 macbook
1 个管道 的构建 通过 耗费 27 秒

个人海报优化

... ... @@ -1261,43 +1261,43 @@ class User extends Api
if (!file_exists($dir)){
mkdir($dir,0777,true);
}
// 用户小程序码
$qrcode = $dir.'/qrcode_'.$user['id'].'.png';
if(!file_exists($qrcode)){
if(!file_exists($qrcode) || imagesx(imagecreatefromjpeg(ROOT_PATH.'public/'.$qrcode)) != 338){
$response = Wechat::miniProgram()->app_code->getUnlimit($user['id'], [
'page' => 'pages/indexone/indexone',
'width' => 280, //最小宽度280
'width' => 338, //最小宽度280
]);
if ($response instanceof \EasyWeChat\Kernel\Http\StreamResponse) {
$response->saveAs($dir, str_replace($dir.'/','',$qrcode));
}
// 280不满足,再缩小
\think\Image::open($qrcode)->thumb(169,169,\think\Image::THUMB_CENTER)->save($qrcode);
// \think\Image::open($qrcode)->thumb(169,169,\think\Image::THUMB_CENTER)->save($qrcode);
}
//将用户头像保存到本地
$avatar = $dir.'/avatar_'.$user['id'].'.png';
file_put_contents($avatar,file_get_contents($user['avatar']));
\think\Image::open($avatar)->thumb(64,64,\think\Image::THUMB_CENTER)->save($avatar);
\think\Image::open($avatar)->thumb(128,128,\think\Image::THUMB_CENTER)->save($avatar);
createRoundImg($avatar);
$path_ttf = ROOT_PATH.'public/assets/fonts/PingFang.ttf';
$filename = $dir.'/'.$user['id'].'.png';
$image = \think\Image::open(ROOT_PATH.'public/assets/img/miniProgram/user_back.png');
$image = \think\Image::open(ROOT_PATH.'public/assets/img/miniProgram/user_back_v2.png');
// 昵称居中
$nickname = $user['nickname'];
$size = 12;
$size = 30;
$box1 = imagettfbbox($size, 0, $path_ttf, $nickname);
$box1_minx = min($box1[0], $box1[2], $box1[4], $box1[6]);
$box1_maxx = max($box1[0], $box1[2], $box1[4], $box1[6]);
/* 计算文字初始坐标和尺寸 */
$w = $box1_maxx - $box1_minx;
$box1_minx += ($image->width() - $w) / 2;
$image->water($avatar,[156,52])
->text($nickname,$path_ttf,$size,'#020202',[$box1_minx,131])
->water($qrcode,[103,181])
$image->water($avatar,[312,104])
->text($nickname,$path_ttf,$size,'#020202',[$box1_minx,262])
->water($qrcode,[206,362])
->save($filename);
$url = request()->domain().'/'.$filename.'?v='.time();
$this->success('成功',compact('url'));
... ...