composer require intervention/image
use Intervention\Image\Facades\Image;
public function index()
{
$canvas = Image::canvas(2480, 3508);
$background = Image::make('zhyx_cert_background_v2.jpg');
$canvas->insert($background, 'center');
$headImage = Image::make('FtZAP0bOLBm5EERYNERd74yh4GH-.jpg')->fit(400, 560);
$sealImage = Image::make('zhyx_seal.jpg');
$canvas->insert($headImage, 'top-right', 1050, 1070);
$canvas->insert($sealImage, 'top-right', 430, 2450);
$name = '张三三';
$canvas->text($name, 1130, 1740, function($font) {
$font->file('simkai.ttf');
$font->size(75);
$font->color('#0000');
$font->align('center');
$font->valign('middle');
$font->angle(0);
});
$cert_number = 'ZJWPYX2024050001';
$canvas->text($cert_number, 731, 2700, function($font) {
$font->file('simkai.ttf');
$font->size(45);
$font->color('#0000');
$font->align('center');
$font->valign('middle');
$font->angle(0);
});
$company = 'xxxxx';
$canvas->text($company, 1815, 2700, function($font) {
$font->file('simkai.ttf');
$font->size(45);
$font->color('#0000');
$font->align('center');
$font->valign('middle');
$font->angle(0);
});
$sign_date = '2024年03月10日';
$canvas->text($sign_date, 1800, 2890, function($font) {
$font->file('simkai.ttf');
$font->size(45);
$font->color('#0000');
$font->align('center');
$font->valign('middle');
$font->angle(0);
});
$query_url = 'http://wwww.baidu.com';
$canvas->text($query_url, 780, 2890, function($font) {
$font->file('simkai.ttf');
$font->size(45);
$font->color('#0000');
$font->align('center');
$font->valign('middle');
$font->angle(0);
});
return $canvas->response();
$disk = Storage::disk('qiniu');
$time = 'zhyx'.date('Y/m/d-H:i:s');
$path = $canvas->encode('png');
$filename = $disk->put($time,$path);
if(!$filename) {
return response()->json([
'code' => 500,
'msg' => '上传失败',
]);
}
$img_url = $disk->getDriver()->downloadUrl($time);
return response()->json([
'code' => 200,
'msg' => 'OK',
'img_url' => $img_url
]);
}