Imagick :: resizeImage vs Imagick :: scaleImage

dyn*_*mic 20 php imagick

resizeImage和之间有什么区别scaleImage

如果图像的大小> $ 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
Run Code Online (Sandbox Code Playgroud)

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

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

Pek*_*ica 21

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

imagick::INTERPOLATE_AVERAGE
imagick::INTERPOLATE_BICUBIC
imagick::INTERPOLATE_BILINEAR
...
Run Code Online (Sandbox Code Playgroud)

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

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

  • @ yes123:[here](http://www.docstoc.com/docs/33154923/Filters-for-Common-Resampling-Tasks)你会发现一篇论文说lanczos确实是一个不错的选择:).刚读完langzos部分,就有结论![编辑]嗯,纸张是从1990年,可能是相当过时的.并且开始考虑它.因为你正在降低分辨率,所以它并不需要那么多.您甚至可以使用BOX过滤器,只需测试一些图像即可. (3认同)