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方法中就可以进行判断,有这个值就进行图片裁剪

  裁剪的思路是,通过路径找到图片,进行宽高等比例裁剪,然后去保存,

猜你喜欢

转载自www.cnblogs.com/muwu/p/9036826.html