PHPの画像リサイズを、配布されているクラスで実現してみよう(PHP5+GDライブラリ必須)
ブログ等でよく紹介されているクラスですが、
細かい解説サイトなどがなかったので、こちらで紹介してみようと思います。
(誤りや訂正等ございましたら情報をお寄せ下さい)
今回使用してみるクラスはこちらです。
【PHP Image Resezer Class】
http://www.milaju.com/post/php-image-resizer-class
PHP+GDライブラリを使用し、画像変換の処理をかんたんに行ってくれるクラスです。
上記サイトから圧縮ファイルをダウンロードし、
解凍をすると下記のようなディレクトリ構成になっています。

index.phpを開いてみましょう。
下記のPHPスクリプトに注目です。

上から順に見てみますと、
最初にクラスファイルを読み込み、
その後に「$imgSizer->」で画像リサイズの詳細設定をしています。
各項目設定の内容を下記に簡単にご紹介します。
$imgSizer->type = "width";
画像をリサイズする縦横の基本設定を行います。
設定できるタイプは、「width」と「height」です。
$imgSizer->max = 100;
リサイズするピクセルサイズを指定します。
$imgSizer->type = "width"の場合、幅が100ピクセル
"height"の場合は高さが100ピクセルになります。
$imgSizer->quality = 8;
画質の調整が行えます。
1〜10までの設定が可能です。
数字が高ければ画質が高くなります。
$imgSizer->square = true;
画像のリサイズ方法に関する設定です。
設定できる値は、「true」と「false」です。
true:画像の中心を基本とし、正方形で画像をリサイズする。
false:縦横の比率を維持してリサイズする。
$imgSizer->prefix = "sml_";
リサイズした画像名の先頭に付加する名称を指定できます。
例:元画像が「test.jpg」→リサイズ後「sml_test.jpg」
$imgSizer->folder = "_sized/";
リサイズした画像を保存するディレクトリを指定します。
デフォルトでは、リサイズ元の画像と同階層のディレクトリにフォルダが作成されます。
以上が基本の設定になります。
そして、最後にリサイズ元の画像を設定します。
$imgSizer->image = "/PHP_ImageSizer/images/test.jpg";
デフォルトの状態では画像のパス指定は、ルートパス指定になります。
各設定が完了しましたら、
「$imgSizer->resize()」を実行します。
実行後は、リサイズされた画像のパスが返ってきます。
この値を、「<img>」タグに設定すると画像が表示できます。
PHPの記述最後の部分は、画像を配列変数に登録し、
それぞれ画像のリサイズ処理をして出力している。
というスクリプトになります。
次にclassファイルの方も少し見てみましょう。
下記の部分ですが、

この記述により「index.php」で設定した項目を、
分解・結合等を行い、最後に画像リサイズ処理を行っています。
$_SERVER['DOCUMENT_ROOT']で、パス指定を行っていますので、
ドキュメントルートの指定を外したい場合は、
この部分を修正し、カスタマイズ等を行うと、
自分の仕様で画像処理スクリプトを作成する事が可能です。
簡単な説明になりましたが以上になります。
今回紹介させて頂きましたクラス以外にも、
画像リサイズ処理は数多く配布されていると思いますので、
いろいろ試してみて、自分にあったスクリプトを見つけるのもいいかもしれないです。
その他のライブラリ
・Image Resizing Made Easy with PHP
・target="_blank"Icebeat | class.image
(hirohito)




