[Perl]ImageMagickで、スカラーに保持した(=メモリ上の)バイナリ画像を読み込む方法

ImageMagickのサンプルコードでは画像ファイルを読み込んで加工する例はよく見かけるのですが、
スカラー変数に保持した(メモリ上のバイナリデータとしての)画像を読み込むサンプルコードがあまりなかったので紹介します。

BlobToImage()というメソッドを使います。
# web上からHTTPなどで画像を取得し、スカラ変数に保持
my $bin_data = get_from_web();

my $img = Image::Magick->new();

# バイナリデータをセット
$img->BlobToImage($bin_data);

# 回転
$img->Rotate(180);

# 標準出力する
binmode(STDOUT);
$img->Write("jpeg:-");
公式サイトにも一応載ってます(わかりにくいですが)。
http://www.imagemagick.org/script/perl-magick.php

ちなみにPHPのImagickでも同じことができます。
(Imagick::readImageBlob)
http://www.php.net/manual/en/imagick.readimageblob.php
カテゴリ: