【发布时间】:2010-10-10 10:20:02
【问题描述】:
鉴于用户上传的图像,我需要创建它的各种缩略图以显示在网站上。我正在使用 ImageMagick 并试图让 Google PageSpeed 满意。不幸的是,无论我在convert 命令中指定什么quality 值,PageSpeed 仍然能够建议进一步压缩图像。
对于 JPEG ... 图像格式, 质量为 1 [提供] 最低 图像质量和最高压缩率 ....
实际上,我什至测试了使用 1 压缩图像(尽管它产生了无法使用的图像),PageSpeed 仍然建议我仍然可以通过“无损压缩”图像来优化此类图像。我不知道如何使用 ImageMagick 压缩图像了。 有什么建议吗?
这是测试我所说的内容的快速方法:
assert_options(ASSERT_BAIL, TRUE);
// TODO: specify valid image here
$input_filename = 'Dock.jpg';
assert(file_exists($input_filename));
$qualities = array('100', '75', '50', '25', '1');
$geometries = array('100x100', '250x250', '400x400');
foreach($qualities as $quality)
{
echo("<h1>$quality</h1>");
foreach ($geometries as $geometry)
{
$output_filename = "$geometry-$quality.jpg";
$command = "convert -units PixelsPerInch -density 72x72 -quality $quality -resize $geometry $input_filename $output_filename";
$output = array();
$return = 0;
exec($command, $output, $return);
echo('<img src="' . $output_filename . '" />');
assert(file_exists($output_filename));
assert($output === array());
assert($return === 0);
}
echo ('<br/>');
}
【问题讨论】:
-
我认为它希望您尝试像 PNG 这样的无损格式。有时这可以为您提供更好的压缩,特别是对于小图像;但这实际上取决于您用户上传的图片类型。
-
PageSpeed 指的是 JPG(因为它实际上提供了可以保存的 JPG)。用户正在上传照片。
-
嗯,奇怪,它提供的 JPEG 比你自动创建的小吗?
-
@Tim,是的。亲自试用 PageSpeed for Firebug 以了解 OP 的含义。我刚刚在这里问了一个相关问题:stackoverflow.com/questions/5451597/…
-
根据我的经验,Google Page Speed 对 JPEG 的唯一优化是删除不必要的元数据。虽然这确实是不必要的,但在大多数图像中,这占相对较少的字节 - 不足以在大图像中产生影响,如果你使用的是小图像 - 你应该是精灵。一般来说,Page Speed 的 JPEG 建议和优化都是针对错误的问题。
标签: image-processing compression imagemagick jpeg pagespeed