laravel使用Intervention\Image扩展压缩图片

记录一下使用Intervention\Image压缩图片

安装扩展

composer require intervention/image

确保php安装了GD库或者 Imagick才可以使用,默认使用Gd库

使用

use Intervention\Image\Facades\Image;

//打开图片文件()
$img = Image::make('public/foo.jpg')

//按宽300,等比缩放图片
$content = $img->resize(300, null, function ($constraint) {
$constraint->aspectRatio();
})->stream();

方法使用

  • make(资源) :支持二进制流、文件流、base64文件流、文件绝对路径、Gd库文件资源、Imagick文件资源等。具体可看下面代码

image-zpgn.png

  • resize(宽,高,闭包):重置大小。宽高两个参数为整数,闭包支持下列两方法:
function ($constraint) {
$constraint->aspectRatio();//保持图片的纵横比例,宽高只上送一个时,该方法可以保持比例不失调
$constraint->upsize();//防止图片放大
}

具体可参考文档(resize)

  • stream():转为文件流

更多用法参考文档