我正在使用 Laravel 5 上的出色干预库来实现一些图像处理。如果图像很小,它可以正常工作,比如小于 700KB 且尺寸小于 800px 宽。
但它无法处理大尺寸图片,我想上传 8 MB 宽、2000 像素宽的图片。
我尝试过经典的碰撞方法,memory_limit
但它不起作用
ini_set("memory_limit","20M");
是否有任何解决方案可以在不杀死服务器的情况下工作。
这是我的上传服务的代码。它使用干预从图像中获取图像Request::file('file')
并将其调整为 3 种尺寸。
- 大尺寸,最大宽度为 2000 像素,然后是
- 中等 800 像素宽
拇指宽 200 像素
public function photo($file) { $me = Auth::user(); //user folder for upload $userFolder = $me->media_folder; //Check the folder exist, if not create one if($this->setupUsrFolder($userFolder)) { //Unique filename for image $filename = $this->getUniqueFilename($userFolder); //Bump the memory to perform the image manipulation ini_set("memory_limit","20M"); //Generate thumb, medium, and max_width image $img = Image::make($file); //big_img $big = $img->resize(config('go.img.max_width'), null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); //Big Image $big->save($this->getPhotoPath($filename, $userFolder, 'b_')); //Medium image $med = $big->resize(config('go.img.med_width'), null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); $med->save($this->getPhotoPath($filename, $userFolder, 'm_')); //Thumbnail $thumb = $med->resize(config('go.img.thumb_width'), null, function ($constraint) { $constraint->aspectRatio(); $constraint->upsize(); }); $thumb->save($this->getPhotoPath($filename, $userFolder, 't_')); return $filename; } return null; }
请帮助我如何提高效率和速度