gpt4 book ai didi

PHP 想象 : How to resize without scaling up?

转载 作者:可可西里 更新时间:2023-11-01 00:59:53 27 4
gpt4 key购买 nike

我正在使用 PHP Imagick 来处理图像。

我有两个用例:“调整大小”和“裁剪”。

在“调整大小”中,如果原始图像的尺寸小于给定的宽度和高度,我不希望 Imagick 将其放大,而是希望它简单地返回原始大小.

但是,正如 PHP 文档所说,Imagick 的行为已从版本 3(我使用的是版本 6+)开始更改,它始终会放大图像。

Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.

因此,在我的例子中,对于给定的尺寸 400x400,尺寸为 200x150 的图像应该返回 200x150 而不是 400x300 的图像。对于给定的尺寸 100x100,尺寸为 200x150 的图像应该返回 100x75 的图像(应该按比例缩小)。

我尝试了 thumbnailImage()、resizeImage() 和 scaleImage(),但都没有成功。如果我将 bestfit 设置为 false,它会进行裁剪,这不是我想要的调整大小。

有什么方法可以用 Imagick 完成这个吗?

最佳答案

尝试这样做:

$max_width  = 1200;
$max_height = 800;
$im = new Imagick($path_to_image);
$im->resizeImage(
min($im->getImageWidth(), $max_width),
min($im->getImageHeight(), $max_height),
imagick::FILTER_CATROM,
1,
true
);

关于PHP 想象 : How to resize without scaling up?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521451/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com