Laravel下 Intervention/image 的使用

有个需求在平台通过上传两张图片 合成一张照片,并在图片下方添加上人员的信息,通过查找,找到 Intervention/image 图片处理这个扩展应用,记录一下。官方手册

1. 安装
1). 使用 composer 安装:
composer require intervention/image

2). 修改 app/config/app.php 添加 ServiceProvider:
// 将下面代码添加到 providers 数组中
'providers' => [
    // ...
    Intervention\Image\ImageServiceProvider::class,
    // ...
  ],

// 将下面代码添加到 aliases 数组中
'aliases' => [
    // ...
    'Image' => Intervention\Image\Facades\Image::class,
    // ...
  ],
上面需求的实例代码
   // 创建一张空的画布,像素3628x1757,背景白色
   $img = Image::canvas(3628, 1757, '#fff');

    // 获取本地图片,可以获取input上传文件
     $leftImage = Image::make(base_path().'/public/p.jpg')->resize(2255, 1305);
     $rightImage = Image::make(base_path().'/public/f.jpg')->resize(1000, 1000);

    // 插入到画布,left-top是距离左侧和顶部,值对应的是后面 100 100 处
     $img->insert($leftImage, 'left-top', 100, 100);
     $img->insert($rightImage, 'right-top', 100, 250);

    // 插入文本,通过回调设置参数,file上传的是字体库,需要自己下载放入
     $img->text('王*军       320830**********542', 1757, 1550, function($font) {
        $font->file(base_path().'/public/fzjw.ttf');
        $font->size(160);
        $font->color('#000');
        $font->align('center');
        $font->valign('top');
        $font->angle(0);
    });
    //可以直接返回图像,也可通过$img->save()进行保存图片
    return $img->response('jpg');
遗憾没有找到字体加粗的办法,只好通过找加粗字体库来处理了
  • Tiger 1个月前

    https://blog.csdn.net/yemeishu6033022/article/details/81229910 实例详解