首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >:如何在不扩展的情况下调整大小?

:如何在不扩展的情况下调整大小?
EN

Stack Overflow用户
提问于 2015-05-29 05:00:33
回答 2查看 4.1K关注 0票数 4

我正在使用PHP来操纵图像。

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

在“调整大小”中,如果原始图像的尺寸小于给定的宽度和高度,我不希望 Imagick对其进行缩放,而是希望它只返回原来的大小。

但是,正如PHP文档所述,Imagick的行为已经从version 3(我使用的是6+版本)改变了,它总是会放大图像。

注意:在Imagick 3.0.0中,参数最佳的行为发生了变化。在此版本之前,给定维度400x400,维度200x150的图像将保持不变。在Imagick 3.0.0及更高版本中,图像将被缩放到400x300大小,因为这是给定维度的“最佳匹配”。如果采用最佳拟合参数,则必须同时给出宽度和高度。

因此,在我的例子中,对于给定的维度400x400,维度200x150的图像应该返回200x150,而不是400x300。对于给定的维度100x100,维度200x150的图像应该返回100x75的映像(即应该进行缩小)。

我尝试了thumbnailImage()、resizeImage()和scaleImage(),没有任何结果。如果我把最好的设置为false,它会进行裁剪,这不是我希望通过调整大小来实现的。

有没有办法用Imagick完成这件事?

EN

回答 2

Stack Overflow用户

发布于 2016-01-15 17:53:09

试着这样做:

代码语言:javascript
复制
$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
);
票数 9
EN

Stack Overflow用户

发布于 2015-05-29 10:08:00

使用以下命令:

代码语言:javascript
复制
convert input.img -resize 400x400\> output.img

请注意使用附加的\>修饰符提供想要的维度的具体方法:它告诉转换过程只调整大于400x400像素的图像的大小。图片是较小的停留未触及。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30521451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档