我想使用Intervention两次调整图片大小。
我目前有这个:
$img = Image::make($image_url);
$img_path = public_path() . '/images/';
$img->fit(500, 250);
$img->save($img_path . '/img_250.jpg');
$img = Image::make($image_url);
$img->fit(100, 100);
$img->save($img_path . '/img_100.jpg');
如您所见,我首先要将原始图像的大小调整为500x250,然后我想再次调整原始图像(不是500x250图像)的大小100×100。
有没有办法在不调用Image::make()
两次的情况下执行此操作?
答案 0 :(得分:6)
以下是答案:
http://image.intervention.io/api/reset
// create an image
$img = Image::make('public/foo.jpg');
// backup status
$img->backup();
// perform some modifications
$img->resize(320, 240);
$img->invert();
$img->save('public/small.jpg');
// reset image (return to backup state)
$img->reset();
// perform other modifications
$img->resize(640, 480);
$img->invert();
$img->save('public/large.jpg');
答案 1 :(得分:0)
我发布此信息是为了帮助可能遇到类似问题的其他人。虽然我们可以实现@ user6421733的答案......这是处理不同尺寸图像的更好方法。
考虑使用Intervention的imagecache可选包。你也可以简单地实现它。 http://image.intervention.io/use/url
它可以让您使用此http://yourhost.com/{route-name}/original/{file-name}
等网址,只需付出很少或更少的努力: