21

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/但是有人可以简化吗?

4

3 回答 3

22

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

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

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

更多关于Wikipedia上的各种插值方法。

于 2011-03-12T21:05:22.807 回答
1

太棒了,他们自己的文档很糟糕......但是好的:在我看来 resizeImage 更强大,因此是更好的选择......这个链接显示了不同过滤器的用法以及一些测量值。

于 2011-03-12T21:06:28.050 回答
0

根据我的发现,当您想缩小图像时,请使用 resizeImage。因为它使您可以控制要使用的图像质量和过滤器类型。但在同样的情况下,scaleImage 也是一个不错的选择,因为当您必须将图像缩小到 10 倍并且您正在使用 resizeImage 时,您生成的图像会出现很多图形错误。

在第二种情况下,当您必须放大图像时,resizeImage 肯定会出现图形错误,例如 while 标记和线条等。在这种情况下, scaleImage 会来拯救。

于 2014-09-24T22:51:54.513 回答