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');

遗憾没有找到字体加粗的办法,只好通过找加粗字体库来处理了

TigerLin
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 2
wanghan

学习了

4年前 评论

功能太强,把程序员都伺候成傻瓜了。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!