使用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"
网上说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;
}
可以参考