« レーザープリンタを拾った | メイン | 不定期に寝てる »

2006年06月21日

BLOG 型画像ファイルの画像形式を変換する

Image::Magick を使えば、画像形式の変換が出来るのだけど、メモリ上で行う方法を調べてた。多くのサイトでは、物理ファイルを読み込む方法しか書いていない。

具体的には、予め画像のバイナリを MySQL の BLOB 型として保存しておき、表示するときに画像の形式を変換したかったのです。もちろん、必要に応じてリサイズも。

ということで、適当なコードを。

use Image::Magick;

# DB から画像ファイルのバイナリを取得
my $file = &get_blob();

my $image = Image::Magick->new();
$image->BlobToImage($file);

print "Content-Type: image/gif\r\n";
print "\r\n";
print $image->ImageToBlob(magick => 'gif');

get_blob にて BLOG 型の画像データを受け取って、それを GIF に変換するコードです。

BlobToImage も ImageToBlob も配列を扱うことが出来ます。なので、1日に1回画像形式を変換するといったバッチ処理が効率よく行えるのではないでしょうか。掲載したコードの最後の部分は、厳密にはリストです。

携帯の画像をストレージするようなサービスを始めるかもしれない。時間があればね。

【関連情報】
・Working with Blobs - PerlMagickリファレンス (Cepheid)
 http://www.ss.iij4u.or.jp/~somali/web/_perlmagick_ref.html#blobs

2006年06月21日 23:03 | Programming

トラックバック

コメント