有没有理由为什么GD会在这种情况下压缩我调整大小的图像

时间:2012-03-06 22:39:25

标签: php image-processing compression gd jpeg

我有一个过程,我正在拍摄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

我似乎控制压缩的代码中唯一的位置是在我传递100的imagejpeg调用中。为什么一个图像的大小是原来缩小到<%10文件的50%大小

[编辑] 添加了示例文件: BEFORE AFTER

TIA

2 个答案:

答案 0 :(得分:0)

一切看起来都不错,但很明显质量设置被忽略了。尽管the documentation表示您可以使用高达100的质量设置,但我会尝试99以确定它是否有所作为。

答案 1 :(得分:0)

ImageMagick完全解决了这个问题,所以,我只是在使用它。