3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(PHP)画像のリサイズ、回転を行う

PHPで画像のリサイズ、回転を行いたいわけですが、GDライブラリを使うと簡単にできます。

アップロードされた画像をファイルをリサイズする場合、下記のような感じです。

$imginfo = getimagesize( $_FILES['image']['tmp_name'] );

if ( $imginfo[2] == IMAGETYPE_JPEG || $imginfo[2] == IMAGETYPE_GIF

|| $imginfo[2] == IMAGETYPE_PNG ){

 

$image = ImageCreateFromJPEG($_FILES['image']['tmp_name']); //JPEGファイルを読み込む

//回転する場合は、下記のようにする 引数は、画像、角度、回転後にカバーされない部分に利用される背景色

//$image = imagerotate($image, 90, 0);

 

$width = $imginfo[0]; //ImageSX($image)でも可

$height = $imginfo[1]; //ImageSY($image)でも可

//縮小サイズ決定

$new_width = 240;

$rate = $new_width / $width; //圧縮比を求める

$new_height = $rate * $height;

 

// 空の画像を作成する。

$new_image = ImageCreateTrueColor($new_width, $new_height);

 

//リサイズ サンプリングしなおす場合。(ImageCopyResizedよりこっちの方が綺麗みたい)

ImageCopyResampled($new_image,$image,0,0,0,0,$new_width,$new_height,$width,$height);

//ファイル保存(数値は品質)

ImageJPEG($new_image, $_FILES['image']['tmp_name'], 70);

 

//後処理 メモリ解放

ImageDestroy($image);

ImageDestroy($new_image);

}else{

//画像じゃないとき

echo "error:選択されたファイルは画像ファイルではありません。";

}

非常に簡単ですね。

参考:

【PHP】GDライブラリを使って画像のサムネイルを作成する。

Geekなぺーじ : PHP GDプログラミング

imagecopyresampled()の画像リサイズ処理|管理者メモ(雑記)|PHPアップローダー フォトアルバム