laravel5.8使用 Intervention/image 处理图片

使用composer下载: packagist地址

composer require intervention/image

打开config/app.php$providers数组中添加

Intervention\Image\ImageServiceProvider::class

$aliaes中添加

'Image' => Intervention\Image\Facades\Image::class

生成配置文件

php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravelRecent"

image.png

网上说GD库处理图像的效率要逊色于imagemagick库。上篇文章也安装了imagemagick库。这里的驱动就用imagick了

注册测试图片路由

Route::get('/','IndexController@img')->name('index.img');

控制器方法

use Intervention\Image\Facades\Image;

 public function img(){
        $qrcode =  Image::make('uploads/qrcode.jpg')->resize(80, 80);//二维码修改大小
        $img = Image::make('uploads/anli/gS0qM5p7rcH4KklQfgb9ZwKWk5HfLVPtWuUCNLoj.jpeg')->resize(300, 300);//图片处理
        $img->insert($qrcode,'bottom-right',15,10);//添加二维码在右下方.距离下边距 10 像素, 距离右边距 15 像素

        $img->text( '测试', 0, 0, function($font) {
            $font->file(public_path('font\sd.ttf'));
            $font->size(28);//字体大小
            $font->color('#f00');//颜色
            $font->align('left');//起始点
            $font->valign('top');//起始点。当前设置为字体的坐上为0,0
//        $font->angle(45);//倾斜角度
        });
        return $img->response('jpg');
    }
图片加二维码和文字

注意事项

  • make的图片路径是public的路径
  • 字体必须指定ttf.否则可能不显示。字体还必须可以显示中文,有不少同学因为字体问题踩坑了
  • 字体路径必须找得到,ttf区分大小写
  • 有些情况可以改字符集
function to_unicode($string)
{
    $str = mb_convert_encoding($string, 'UCS-2', 'UTF-8');
    $arrstr = str_split($str, 2);
    $unistr = '';
    foreach ($arrstr as $n) {
        $dec = hexdec(bin2hex($n));
        $unistr .= '&#' . $dec . ';';
    }
    return $unistr;
}

可以参考

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容