作者 何书鹏
1 个管道 的构建 通过 耗费 19 秒

个人海报优化

... ... @@ -1264,42 +1264,46 @@ class User extends Api
// 用户小程序码
$qrcode = $dir.'/qrcode_'.$user['id'].'.png';
if(!file_exists($qrcode) || imagesx(imagecreatefromjpeg(ROOT_PATH.'public/'.$qrcode)) != 338){
// $qrcode_width = 338;
$qrcode_width = 1100;
if(!file_exists($qrcode) || imagesx(imagecreatefromjpeg(ROOT_PATH.'public/'.$qrcode)) != $qrcode_width){
$response = Wechat::miniProgram()->app_code->getUnlimit($user['id'], [
'page' => 'pages/indexone/indexone',
'width' => 338, //最小宽度280
'width' => $qrcode_width, //最小宽度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($qrcode_width,$qrcode_width,\think\Image::THUMB_CENTER)->save($qrcode); //压缩kb
}
//将用户头像保存到本地
$avatar = $dir.'/avatar_'.$user['id'].'.png';
file_put_contents($avatar,file_get_contents($user['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_v2.png');
// 昵称居中
$nickname = $user['nickname'];
$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,[312,104])
->text($nickname,$path_ttf,$size,'#000000',[$box1_minx,262])
->water($qrcode,[206,362])
->save($filename);
$url = request()->domain().'/'.$filename.'?v='.time();
// //将用户头像保存到本地
// $avatar = $dir.'/avatar_'.$user['id'].'.png';
// file_put_contents($avatar,file_get_contents($user['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_v2.png');
// // 昵称居中
// $nickname = $user['nickname'];
// $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,[312,104])
// ->text($nickname,$path_ttf,$size,'#000000',[$box1_minx,262])
// ->water($qrcode,[206,362])
// ->save($filename);
// $url = request()->domain().'/'.$filename.'?v='.time();
$url = request()->domain().'/'.$qrcode.'?v='.time();
$this->success('成功',compact('url'));
}
... ...