最新のウェブサイト開発では、ページの読み込み速度とユーザーエクスペリエンスの改善には、画像サイズの最適化が特に重要です。等しい割合の圧縮技術により、画像の元のアスペクト比を維持しながら、画像ファイルのボリュームを効果的に削減できます。この記事では、PHPでGDライブラリを使用してこの機能を実装し、実用的なコードの例を提供する方法を紹介します。
写真の比例比較圧縮の基本的なアイデアは、次のことです。元の画像のアスペクト比に基づいて、ターゲット幅(または高さ)に基づいて対応するターゲットの高さ(または幅)を計算して、画像が変形しないようにします。このプロセスは、画像情報の読み取り、キャンバスの作成、スケーリング、画像の出力など、PHPのGD拡張機能を使用して簡単に実現できます。
最初のステップは、getImagesize()関数を介して元の画像の幅と高さを読むことです。
$originalImagePath = 'path/to/original/image.jpg';
$originalImageSize = getimagesize($originalImagePath);
$originalWidth = $originalImageSize[0];
$originalHeight = $originalImageSize[1];
目標幅の設定に基づいて、比率に従ってターゲットの高さを計算します。
$targetWidth = 800;
$targetHeight = $originalHeight * ($targetWidth / $originalWidth);
GDライブラリを使用して画像リソースを作成し、同じスケールの圧縮を実行します。
$originalImage = imagecreatefromjpeg($originalImagePath);
$targetImage = imagecreatetruecolor($targetWidth, $targetHeight);
次に、 ImageCopyResampled()関数を使用して、画像スケーリング操作を実行します。
imagecopyresampled(
$targetImage,
$originalImage,
0, 0, 0, 0,
$targetWidth, $targetHeight,
$originalWidth, $originalHeight
);
最後に、圧縮された画像を指定されたパスに保存します。
$targetImagePath = 'path/to/target/image.jpg';
imagejpeg($targetImage, $targetImagePath, 80); // 圧縮品質はに設定されています80%
この記事に示されている手順を通じて、開発者はPHPでの写真の等しい規模の圧縮を簡単に実現できます。これにより、写真の品質を確保するだけでなく、ファイルサイズを効果的に削減できます。このタイプの処理は、画像アルバムディスプレイ、記事カバー写真、製品の写真など、フロントエンドのパフォーマンスを最適化する必要があるシナリオに特に適しています。