- GDライブラリを使用する方法: GDライブラリは、PHPで画像処理を行うための一般的なライブラリです。以下のコード例では、GDライブラリを使用して画像を比例リサイズします。
function resizeImage($sourcePath, $destinationPath, $maxWidth, $maxHeight) {
// オリジナル画像のサイズを取得
list($width, $height) = getimagesize($sourcePath);
// 比率を計算
$ratio = min($maxWidth / $width, $maxHeight / $height);
// リサイズ後のサイズを計算
$newWidth = $width * $ratio;
$newHeight = $height * $ratio;
// GDライブラリを使用して画像をリサイズ
$image = imagecreatefromjpeg($sourcePath);
$resizedImage = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($resizedImage, $image, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
imagejpeg($resizedImage, $destinationPath, 90);
// メモリを解放
imagedestroy($image);
imagedestroy($resizedImage);
}
// 例: 画像を最大幅400ピクセル、最大高さ300ピクセルで比例リサイズする
$sourcePath = 'path/to/original/image.jpg';
$destinationPath = 'path/to/resized/image.jpg';
$maxWidth = 400;
$maxHeight = 300;
resizeImage($sourcePath, $destinationPath, $maxWidth, $maxHeight);
- Imagickライブラリを使用する方法: ImagickライブラリもPHPで画像処理を行うための人気のあるライブラリです。以下のコード例では、Imagickライブラリを使用して画像を比例リサイズします。
function resizeImage($sourcePath, $destinationPath, $maxWidth, $maxHeight) {
// Imagicオブジェクトを作成
$image = new Imagick($sourcePath);
// オリジナル画像のサイズを取得
$width = $image->getImageWidth();
$height = $image->getImageHeight();
// 比率を計算
$ratio = min($maxWidth / $width, $maxHeight / $height);
// リサイズ後のサイズを計算
$newWidth = $width * $ratio;
$newHeight = $height * $ratio;
// 画像をリサイズ
$image->resizeImage($newWidth, $newHeight, Imagick::FILTER_LANCZOS, 1);
// リサイズ後の画像を保存
$image->writeImage($destinationPath);
// メモリを解放
$image->destroy();
}
// 例: 画像を最大幅400ピクセル、最大高さ300ピクセルで比例リサイズする
$sourcePath = 'path/to/original/image.jpg';
$destinationPath = 'path/to/resized/image.jpg';
$maxWidth = 400;
$maxHeight = 300;
resizeImage($sourcePath, $destinationPath, $maxWidth, $maxHeight);
以上がPHPで画像を比例リサイズするための基本的な方法です。GDライブラリとImagickライブラリの両方を使用することができますが、環境によってはGDライブラリが利用できない場合もあるため、適切なライブラリを選択してください。また、コード例ではJPEG形式の画像を前提としていますが、他の形式の画像もリサイズできるように、適宜コードを変更してください。