我一直无法找到这个问题的明确答案。
我想无损地优化我的图像(主要是 jpg),使其满足 YSlow 的图像优化标准。我无法确定需要采取哪些步骤来执行此操作。
我知道像 smush.it 这样的服务,但我不想依赖 API 或服务。
基本上我正在寻找的是根据 YSlow 的标准优化图像的步骤列表。
仅仅使用GD和改变质量是不够的,我还需要做什么?
我一直无法找到这个问题的明确答案。
我想无损地优化我的图像(主要是 jpg),使其满足 YSlow 的图像优化标准。我无法确定需要采取哪些步骤来执行此操作。
我知道像 smush.it 这样的服务,但我不想依赖 API 或服务。
基本上我正在寻找的是根据 YSlow 的标准优化图像的步骤列表。
仅仅使用GD和改变质量是不够的,我还需要做什么?
您是否尝试过使用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;
?>
在 Mike Brittain 的Wesley项目中实现了一个与 Smush.it 功能相当的粗略等效功能。它是 Perl 而不是 PHP,但您可以根据需要调整它,或者只是在命令行中使用它。
它实现了Smush.it FAQ中描述的类似压缩工具和步骤。