Imagick::resizeImage vs Imagick::scaleImage

2022-08-30 20:04:05

和 之间有什么区别?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/ 但是有人可以简化它吗?


答案 1

两者之间的区别似乎是进行基于像素的原始调整大小,而调整大小图像可以使用插值过滤器scaleImage

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

这可能会产生更好的结果。

更多关于维基百科上的各种插值方法。


答案 2

太棒了,他们自己的文档很糟糕...但没关系:在我看来,调整大小图像更强大,因此是更好的选择......此链接显示了不同过滤器的使用情况以及一些测量值。


推荐