0

我一直无法找到这个问题的明确答案。

我想无损地优化我的图像(主要是 jpg),使其满足 YSlow 的图像优化标准。我无法确定需要采取哪些步骤来执行此操作。

我知道像 smush.it 这样的服务,但我不想依赖 API 或服务。

基本上我正在寻找的是根据 YSlow 的标准优化图像的步骤列表。

仅仅使用GD和改变质量是不够的,我还需要做什么?

4

2 回答 2

3

您是否尝试过使用imageinterlace()生成渐进式 JPG ?它使较小的图像略大,但较大的图像要小得多。这是我的图像优化代码的最后一块拼图。

示例代码

<?php
$new_img = imagecreatetruecolor($img_width, $img_height);
imageinterlace($new_img, true); // Use progressive JPGs
$white = imagecolorallocate($new_img, 255, 255, 255);
imagefilledrectangle($new_img, 0, 0, $img_width, $img_height, $white);
imagecopyresampled($new_img, $img, $x, $y, 0, 0, $new_width, $new_height, $width, $height);
header("content-type: image/jpg");
imagejpeg($new_img, NULL, 100);
imagedestroy($img);
imagedestroy($new_img);
die;
?>
于 2013-01-22T16:21:24.390 回答
0

在 Mike Brittain 的Wesley项目中实现了一个与 Smush.it 功能相当的粗略等效功能。它是 Perl 而不是 PHP,但您可以根据需要调整它,或者只是在命令行中使用它。

它实现了Smush.it FAQ中描述的类似压缩工具和步骤。

于 2013-05-23T00:27:40.850 回答