1.安装
使用Composer在命令行安装最新版本的Intervention Image:
composer require intervention/image
2.集成到Laravel
安装好Intervention Image后,打开config/app.php,注册如下服务提供者到$providers数组:
Intervention\Image\ImageServiceProvider::class
然后添加如下门面到$aliaes数组:
'Image' => Intervention\Image\Facades\Image::class
3.配置
默认情况下,Intervention Image使用PHP的GD库扩展处理所有图片,如果你想要切换到Imagick,你可以将配置文件拉到应用中:
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
这样对应的配置文件会被拷贝到config/image.php,你可以在该配置文件中修改图片处理驱动配置。
4.使用
public static function upload($request) { $img = $request->file('file'); $images_path = 'upload/' . $request->path; $dir = base_path()."/public/upload/".$request->path; //检验目录是否存在 if(!is_dir($dir)){ @mkdir($dir, 0777, true); } //获取上传图片 $score_file = $img; //str_random $ext = $score_file->getClientOriginalExtension(); //src/Illuminate/Support/Str.php $upload_file_name = time() . Str::random(10) . '.' . $ext; //图片压缩上传 20220107 $image = Image::make($img); // 尺寸等比压缩,最大宽度800 if (($width = $image->getWidth()) > 800) { // 等比缩放,需要计算宽度缩放的比例,再计算出缩放后的图片高度 $proportion = $width / 800; $height = ceil($image->getHeight() / $proportion); $image = $image->resize(800, $height); } // 文件绝对路径且用save保存 // 保存图片,并设置质量压缩为60 $image->save($images_path .'/'. $upload_file_name, 60); //最终的图片路径 $images_path = "/" . $images_path .'/'. $upload_file_name; //返回图片路径 return $images_path; }
最后调用静态方法返回图片路径就可以了。
来源地址:https://blog.csdn.net/qq_41762589/article/details/128264608