laravel框架实现制作缩略图和水印

1.首先需要使用  composer 在命令行安装最新版本的 intervention/image :

composer require intervention/image

 

2.注册服务提供者及别名(Laravel 版本 ≤ 5.4)

如果你的 laravel 版本小于或等于 5.4,安装后需要注册服务提供者和别名到 config/app.php 。

Intervention\Image\ImageServiceProvider::class,

 

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

 

3.使用 Image 加水印

 

完成了上面的操作后,就可以开始处理图片了。在使用 Image 类之前,需要先 引入   use Intervention\Image\Facades\Image;

 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 Intervention\Image\Facades\Image;
 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


posted @ 2021-01-28 00:10  Conqueror·  阅读(557)  评论(0编辑  收藏  举报