繁体   English   中英

为什么保存到文件的图像大小与使用imagejpeg()的资源不同?

[英]Why do images saved to file differ in size from resources with imagejpeg()?

我正在使用PHP GD库从图像自动生成缩略图。
然后,我使用imagejpeg()将调整大小后的图像保存到文件中,质量为95%。

当我使用echo file_get_contents($file)输出此文件时,图像的文件大小始终是使用imagejpeg($resource_handle)直接将调整大小后的图像输出到浏览器时的imagejpeg($resource_handle)倍。

Google PageSpeed还告诉我图像可以压缩75%,这证实了1/4的比例。

这可能是什么原因?

我发现手册( http://php.net/manual/en/function.imagejpeg.php )提到默认的质量设置(未传递quality参数)约为75%。

这说明了为什么直接输出图像而不传递任何其他参数到imagejpeg()导致图像较小,然后手动设置质量高于75。

“质量”设置在JPEG中是毫无意义的术语。 它只是某些编码器用来选择量化表的简化形式。 一个编码器75可以与另一种编码器75完全不同。

要弄清楚这一点,您需要查看并比较

  1. 采样率;
  2. 量化表;
  3. 霍夫曼表

在两个图像中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM