laravel 图片裁剪
续接 之前的上传方法 http://www.cnblogs.com/muwu/p/9036041.html
laravel裁剪需要用到image包
composer require intervention/image
php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
再ImageUploadHandle中创建裁剪方法
use Image
public function resetingsize( $file_path , $max_width)
{
$image = Image::make($file_path); //打开图片实例化
$image->resize($max_width,null,function($constraint){ //接受两个参数,长和宽,此处接收最大长,高为null,创建匿名函数实现长款等比变大变小
$constraint->aspeclRatio(); //按比例裁剪
$constraint->upsize(); ///防止图片变大
})
$iamge->save(); //裁剪完了保存
}
再上面保存图片到路径中的save()方法中
save($max_width = false) 增加参数,默认值为false,表示不裁剪
把save里面的 $file->move() 方法更换:
if($max_width && $ext != 'png') //判断是否要求裁剪
{
$this->resetingsize( $file_path , $max_width);
}
其思路就是做了一个接口,如果要限制图片大小,就传递一个最大宽度的参数,这样子再save方法中就可以进行判断,有这个值就进行图片裁剪
裁剪的思路是,通过路径找到图片,进行宽高等比例裁剪,然后去保存,