在这种情况下GD有啥理由压缩我调整大小的图像
Posted
技术标签:
【中文标题】在这种情况下GD有啥理由压缩我调整大小的图像【英文标题】:Is there any reason why GD would compress my resized image in this situation在这种情况下GD有什么理由压缩我调整大小的图像 【发布时间】:2012-03-06 22:39:24 【问题描述】:我有一个处理 JPG 并调整其大小的过程。
我的意图是不应用任何额外的压缩并简单地修改尺寸,但是,在代码运行后,图像的 Kb 比我预期的要小(而且质量更差)。
我很好奇我是否做错了什么(我是 GD/Imagemagick 的新手)以及是否需要采取其他步骤来保持质量。
这是我的代码:
$src = imagecreatefromjpeg($originalLocation);
$dst = imagecreatetruecolor($destinationWidth, $destinationHeight);
list($oWidth, $oHeight, $type, $attr) = getimagesize($originalLocation);
imagecopyresampled($dst, $src, 0, 0, 0, 0,$destinationWidth,$destinationHeight,$oWidth,$oHeight);
imagejpeg($dst, $destinationLocation, 100 );
源图像为 1024x600 和 ~450k 生成的图像是 640x375,但只有 ~30k
代码中我似乎可以控制压缩的唯一位置是在 imagejpeg 调用中,我传递了 100。为什么一个大于原始大小 50% 的图像缩小到
[编辑] 添加了示例文件:
TIA
【问题讨论】:
从技术上讲,它不是>50%
的大小 - 与原始的 ~614k 像素相比,它大约是 240k 像素。
30k 图片长什么样子?
您是否查看了目标文件以了解它的外观?对于高质量的 640x375 图像来说,30k 真的很小。也许尺寸不是你想象的那样。
你有能力在不同的主机上进行测试吗?我遇到了很多与不同 GD 版本和操作系统不一致的地方。最好排除这种情况......
@Amber,我听到了,但我希望最终文件具有相似的比率......目前它有很大的不同。
【参考方案1】:
一切看起来都不错,但很明显质量设置被忽略了。尽管the documentation 声明您可以使用最高 100 的质量设置,但我会尝试使用 99 来看看它是否有所作为。
【讨论】:
【参考方案2】:ImageMagik 完全解决了这个问题,所以,我只是在使用它。
【讨论】:
以上是关于在这种情况下GD有啥理由压缩我调整大小的图像的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP GD lib 压缩和调整图像大小不适用于 png 和 jpg 的奇怪结果