PHPで簡単に画像を縮小するライブラリ
ユーザーからの画像アップロードを受け付けるサイトで、そのサムネイル画像として縮小された画像を用意したい場合があります。
Twitterのサムネイル画像はアップロードした画像を適当なサイズに切り取り・縮小して表示してくれて良い感じです。
あれをPHPから簡単にできるクラスを作りました。
ダウンロード
以下のURLからダウンロードしてください。
http://cafetable.net/katty/image_class/image.zip
正しく動作することは全く保証できませんが、自由に改変などして使っていただいて結構です。
使い方と動作例
このバンバンジーを縮小したいと思います。
初期化
Imageクラスを初期化する時に画像のURLを与えます。
include (‘image.php’);
$image = new Image(‘./photo1.jpg’);
縮小して保存する
Resizeメソッドで縮小、Saveメソッドで保存できます。メソッドチェーンで一連の処理を1行にまとめられます。
- Resize($width, $height, $bgcolor = 0x000000 )
指定されたサイズにおさまるように縮小されます。余ったスペースは指定した色で塗りつぶします。指定しないと黒で塗りつぶします。
- Save($name = null)
画像を保存します。ファイル名に拡張子はつけません。ファイル名を指定しないと読み込んだ元の画像に上書きします。
$image->Resize(200, 200)->Save(‘./photo2’);
縮小して枠をつけて保存する
Frameメソッドで枠線をつけることができます。
- Frame($color = 0x000000 )
枠の色を指定できます。指定しないと黒い枠がつきます。
$image->Resize(200, 200, 0xFFFFFF)->Frame()->Save(‘./photo3’);
指定領域いっぱいになるように切り取る
Twitterのユーザーアイコンのように、四角形いっぱいに画像が入るように切り取るには、Cropメソッドを使います。
- Crop($width, $height)
$image->Crop(200, 200)->Frame()->Save(‘./photo4’);
保存しないで画像としてレスポンスする
画像として保存することはせずに、画像としてレスポンスを返すには、Outputメソッドを使います。
- Output()
$image->Resize(200, 200)->Output();
コメント