1.首先需要使用 composer 在命令行安装最新版本的 intervention/image
:
composer require intervention/image
2.注册服务提供者及别名(Laravel 版本 ≤ 5.4)
如果你的 laravel 版本小于或等于 5.4,安装后需要注册服务提供者和别名到 config/app.php
。
InterventionImageImageServiceProvider::class,
'Image' => InterventionImageFacadesImage::class,
3.使用 Image 加水印
完成了上面的操作后,就可以开始处理图片了。在使用 Image 类之前,需要先 引入 use InterventionImageFacadesImage;
1 // 修改指定图片的大小 2 $img = Image::make('images/avatar.jpg')->resize(200, 200); 3 4 // 插入水印, 水印位置在原图片的右下角, 距离下边距 10 像素, 距离右边距 15 像素 5 $img->insert('images/watermark.png', 'bottom-right', 15, 10); 6 7 // 将处理后的图片重新保存到其他路径 8 $img->save('images/new_avatar.jpg'); 9 10 // 上面的逻辑可以通过链式表达式搞定 11 $img = Image::make('images/avatar.jpg')->resize(200, 200)->insert('images/new_avatar.jpg', 'bottom-right', 15, 10);
伪代码 控制器
1 //文件上传 2 public function file(Request $request){ 3 //图片上传 4 header("Content-Type:text/html;charset=UTF-8"); 5 $file=$request->file('file'); 6 $filename=time().'.'.$file->getClientOriginalExtension(); 7 //压缩图片 8 //引入的类 use InterventionImageFacadesImage; 9 $img=Image::make($file)->resize('100,100'); 10 11 //水印的图片 水印的大小 位置 12 $img->insert('uplodes/1.png','bottom-right',15,10); 13 $image=$img->save('uplodes/'.$filename); 14 $images=$image->basename; 15 $pic= "/uplodes/".$images; 16 return ['code'=>200,'image'=>$pic]; 17 }
'image' => [ 'driver' => 'local', 'root' => public_path('uplodes/image/'), ],
注意:需先将添加的水印log保存在public/uplodes 下
相关链接:https://learnku.com/laravel/wikis/27386
https://www.seoui.cn/wzkf/61.html