Imagick :: resizeImage vs Imagick :: scaleImage

时间:2011-03-12 20:38:33

标签: php imagick

resizeImagescaleImage之间有什么区别?

如果图片尺寸大于>我需要调整尺寸。 $ myLimit

示例(伪代码):

$myLimit = 1MB
user uplaod an image of 1000x1000 of 2MB
2MB > $myLimit
while( $imagefilesize > $myLimit  ) {
  resizeImageBy 0.9%;
}

//> output 900x900 image of 900 kB

while块中,我应该使用哪两种方法?

编辑:我找到了一些可以提供帮助的内容:http://www.imagemagick.org/Usage/resize/但有人可以简化吗?

3 个答案:

答案 0 :(得分:21)

两者之间的区别似乎是scaleImage执行原始的基于像素的调整大小,而resizeImage可以使用an interpolation filter

imagick::INTERPOLATE_AVERAGE
imagick::INTERPOLATE_BICUBIC
imagick::INTERPOLATE_BILINEAR
...

可能会产生更好的结果。

有关Wikipedia上各种插值方法的更多信息。

答案 1 :(得分:1)

很棒,他们自己的文档非常糟糕......但是好吧:在我看来resizeImage更强大,因此更好的选择... This link显示了不同过滤器的用法和一些测量。

答案 2 :(得分:0)

根据我的发现,当您想缩小图像时,请使用resizeImage。因为它可以控制您想要使用的图像质量和过滤器类型。但在同样的情况下,scaleImage也是一个不错的选择,因为当你必须按比例缩小图像时,使用resizeImage,那么你得到的图像会有很多图形错误。

在第二种情况下,当你必须按比例放大和图像时,resizeImage将定义像图标和线条等其他东西一样的图形错误。在这种情况下,scaleImage将会拯救。