我正在开发一个网站,其中涉及展示来自各种在线零售商的大量产品图片。由于大部分页面权重都在图像中,我认为值得研究减少文件大小的技术。
图像已经是JPEG。我知道PNG有很多额外的瑕疵,可以大大增加文件大小,但我对JPEG的经验较少。所以,有几个相关的问题:
是否值得进一步压缩JPEG? 似乎进一步压缩已经处于有损格式的东西可能会导致更多的伤害(质量差)而不是好(节省10 +%的文件大小)。
还有其他减少文件大小的技术吗? 我不知道EXIF元数据或其他元数据是否属于任何这些图像的一部分,如果削减它们是一个重大改进。
使用GD或ImageMagick的任何经验/建议(或其他?) 还有来自一家名为Spinwave的公司的商业图像压缩库。
答案 0 :(得分:1)
您使用缩略图吗?如果是这样,它们是单独保存还是完整加载的较大图像,只是在网页上调整大小?当您在页面上显示单独的缩略图大小时,将节省大量带宽。
您可以降低JPEG上的品质因数,直到您看到它为止。每次执行此操作时,您都会看到文件大小有所改善。但是,正如您所怀疑的那样,由于您已经拥有JPEG,因此您可能会更快地看到图像中的棋盘格工件,因为您正在压缩已经压缩的图像。
GD或IM都运作良好。
答案 1 :(得分:0)
像.ZIP这样的无损压缩,但它们通常更糟糕,对于已经压缩的格式不是很有用。
JPEG可以有不同级别的压缩。这是你的决定,多少质量就足够了。来自数码相机的照片可以压缩到十分之一的尺寸,同时非常适合网站。
JPEG更适合拍照。 PNG更适合徽标和纯色。
ImageMagick应该允许您从命令行或程序库更改jpeg的大小。 请参阅http://www.imagemagick.org/Usage/formats/#jpg
答案 2 :(得分:0)
我被带入PHP爱GD(我知道其中一个贡献者)。只需记住将图像缓存为文件。例如:
$ im = imagecreatefromjpeg('file.jpg');
//输出功能
// 80 =质量
imagejpeg($ im,'savedfile.jpg',80);
代码格式似乎不起作用!
答案 3 :(得分:0)
我的经验表明,一些“产品”图像是使用色彩空间元数据创建的,以便在打印介质上进行准确的色彩再现。这可以膨胀jpeg文件大小。在某些情况下,我可以通过删除EXIF来减少jpeg文件,例如30%。
答案 4 :(得分:0)
请勿重新编码。如果原始图像具有某种非损耗格式,请使用更高的压缩率进行编码。如果您要在已经进行DCT量化的图像之上进行DCT量化,则与直接以所需的较低比特率进行编码相比,将会引入不必要的图像质量损失。