ユーザーがアップロードした画像を前提として、Webサイトに表示するためにさまざまなサムネイルを作成する必要があります。私はImageMagickを使用していて、GooglePageSpeedを幸せにしようとしています。quality
残念ながら、コマンドで指定した値に関係なくconvert
、PageSpeedは画像をさらに圧縮することを提案できます。
http://www.imagemagick.org/script/command-line-options.php?ImageMagick=2khj9jcl1gd12mmiu4lbo9p365#qualityに言及していることに注意してください。
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/>');
}