imagejpeg 関数は、品質を割り当てる場所です。すでに適切な値に設定している場合は、他にできることはほとんどありません。
ページ速度はおそらく、特定のサイズを超えるすべての画像を「圧縮が必要」であると見なします。おそらく、すべての画像が(高さ/幅に関して)妥当な範囲で小さく圧縮されていることを確認してください。
ページ速度の詳細については、pagespeed ドキュメントhttp://code.google.com/speed/page-speed/docs/payload.html#CompressImagesの圧縮に関する提案を参照してください。適切に圧縮するためのテクニックやツールがいくつか説明されています。
また、次の記事も読みました。
画質に影響を与えることなく、JPEG および PNG ファイルに対してさらに可逆圧縮を実行するツールがいくつかあります。JPEG の場合は、jpegtranまたはjpegoptimをお勧めします (Linux でのみ使用可能。 --strip-all オプションで実行)。PNG の場合は、OptiPNGまたはPNGOUTをお勧めします。
したがって、おそらく (本当に Google の提案に固執したい場合)、PHP を使用exec
して、アップロードされたファイルに対してこれらのツールの 1 つを実行できます。
PHPで圧縮するには、次のようにします(すでにこれを行っているように聞こえます):
$source_url
画像はどこ$destination_url
にあり、 は保存する場所であり、$quality
は 1 から 100 までの数値で、使用する jpeg 圧縮の量を選択します。
function compressImage($source_url, $destination_url, $quality) {
$info = getimagesize($source_url);
if ($info['mime'] == 'image/jpeg') $image = imagecreatefromjpeg($source_url);
elseif ($info['mime'] == 'image/gif') $image = imagecreatefromgif($source_url);
elseif ($info['mime'] == 'image/png') $image = imagecreatefrompng($source_url);
//save file
imagejpeg($image, $destination_url, $quality);
//return destination file
return $destination_url;
}