現在の位置: ホーム> 最新記事一覧> 写真の平等な比例圧縮を実装するためのPHPの方法とコードの例

写真の平等な比例圧縮を実装するためのPHPの方法とコードの例

gitbox 2025-08-07

概要

最新のウェブサイト開発では、ページの読み込み速度とユーザーエクスペリエンスの改善には、画像サイズの最適化が特に重要です。等しい割合の圧縮技術により、画像の元のアスペクト比を維持しながら、画像ファイルのボリュームを効果的に削減できます。この記事では、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での写真の等しい規模の圧縮を簡単に実現できます。これにより、写真の品質を確保するだけでなく、ファイルサイズを効果的に削減できます。このタイプの処理は、画像アルバムディスプレイ、記事カバー写真、製品の写真など、フロントエンドのパフォーマンスを最適化する必要があるシナリオに特に適しています。