サーバーにある画像を回転させる

pman-bros

スマートフォンやデジタルカメラで撮影した写真を回転してサーバーにアップロードすることがあります。

その場合は、一旦画像編集ソフトや編集機能のある画像ビューワをつかって回転し、そのファイルをFTPソフトでサーバーにアップロードするのが一般的な手順でしょう。

では、サーバーにある画像ファイルをプログラムから回転するにはどうしたらいいのでしょうか?

そのような機能をもったプログラムからサーバーにある画像を回転する場合には、GDライブラリの『imagerotate関数』を用います

今回は、imagerotate関数を使った画像ファイルを回転させる基本的なサンプルプログラムを作ってみました。

角度は左回り(反時計回り)が正ですので、時計回りで角度を指定する場合はマイナス指定します。回転の中心は画像の中心です。角度は自由に指定できますが、矩形の画像を回転すると余白部分ができてしまいます。角度は90度、-90度、180度にすべきでしょう。

<?php

 $_IMG_URL = 'rotate_test.jpg';   // イメージファイル名
 $degrees = -90;    // 回転角度 時計回りはマイナスで指定 

 if( $source = imagecreatefromjpeg($_IMG_URL) ){   // imagecreatefromjpegで画像リソースIDを取得
	$rotate = imagerotate($source, $degrees, 0);  // 取得した画像リソースIDと指定角度で、画像を回転させる。
	imagejpeg($rotate, $_IMG_URL, 100);   // 回転した画像を上書きする場合は、imagejpegの保存先パスに元ファイルと同じものを指定。	
	imagedestroy($source);	// メモリの解放
	imagedestroy($rotate);	// メモリの解放
 }else{
		print("ファイルがありません");
 }

	print("<img  src=\"$_IMG_URL\">");	// イメージファイルを出力します

?>

デモページ

PHP

Posted by pman-bros