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
在while
块中,我应该使用哪两种方法?
编辑:我找到了一些可以提供帮助的内容:http://www.imagemagick.org/Usage/resize/但有人可以简化吗?
答案 0 :(得分:21)
两者之间的区别似乎是scaleImage
执行原始的基于像素的调整大小,而resizeImage
可以使用an interpolation filter:
imagick::INTERPOLATE_AVERAGE
imagick::INTERPOLATE_BICUBIC
imagick::INTERPOLATE_BILINEAR
...
可能会产生更好的结果。
有关Wikipedia上各种插值方法的更多信息。
答案 1 :(得分:1)
答案 2 :(得分:0)
根据我的发现,当您想缩小图像时,请使用resizeImage。因为它可以控制您想要使用的图像质量和过滤器类型。但在同样的情况下,scaleImage也是一个不错的选择,因为当你必须按比例缩小图像时,使用resizeImage,那么你得到的图像会有很多图形错误。
在第二种情况下,当你必须按比例放大和图像时,resizeImage将定义像图标和线条等其他东西一样的图形错误。在这种情况下,scaleImage将会拯救。