干预:调整图像大小两次?

问题描述 投票:0回答:3

我想使用干预调整图像大小两次。

我现在有这个:

$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 图像)调整为 100x100。

有没有办法做到这一点而不需要两次调用

Image::make()

php laravel laravel-5 intervention
3个回答
13
投票

答案如下:

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');

0
投票

我发布此内容是为了帮助可能遇到类似问题的其他人。虽然我们可以实现@user6421733的答案...有更好的方法来处理不同尺寸的图像。

考虑使用 Intervention 的 imagecache 可选包。您也可以简单地实现它。 http://image.intervention.io/use/url

它可以让您使用这样的网址

http://yourhost.com/{route-name}/original/{file-name}
并且只需很少或更少的努力:


0
投票

在版本 3 中,这样做是这样的:

// original image 800 x 600
$img = $imageManager->read('public/foo.jpg');

// small version
$small = clone $img;
$small->resize(320, 240);
$small->save('public/small.jpg');

// large version
$img->resize(640, 480);
$img->save('public/large.jpg');

原始注释:https://github.com/Intervention/image/issues/1274

© www.soinside.com 2019 - 2024. All rights reserved.