電気ウナギ的○○

About Home

TIFF ファイルを JPEG フォーマットに変換してアプリに渡す

shinoda (2012年9月 3日 19:16)
Adobe Flex は、画像ファイルとして扱えるのは、PNG, JPEG, GIF, SVG の4種類だけ。

例えば、インターネット上の TIFF ファイルを URLLoader で取得して、それを Loader で、

bmp:Bitmap = Bitmap(event.target.content);

みたいにビットマップデータとしてロードすることは出来ない。

つーことで、今回は Perl で wrapper として動く API プログラムを作成して、AIR アプリから TIFF ファイルへのアクセスがあった場合、JPEG 画像に変換してデータを渡すことにした。

例えば、TIFF 画像を $data に読み込んだ後で、Image::Magick モジュールを使って、

use Image::Magick;

my $image = Image::Magick->new();
$image->Set(magick => 'tif');
$image->BlobToImage($data);

# 今回は、画像サイズを縮小するので、その処理も
my($width, $height)    = $image->Get('width', 'height');
$height    = int($height * ($Width(変更後の横幅) / $width));
$image->Resize(width => $Width, height => $height);

my $new_data    = $image->ImageToBlob(quality => $Quality(画質), magick => 'jpg');

こんな感じ。
これで、$new_data に TIFF から変換された JPEG 画像データがセットされるので、

my $size    = length($new_data);

print "Content-type: image/jpeg\n";
print "Content-Length: $size\n";
print "\n";
print $new_data;

で、AIR アプリ側でも問題なく画像が表示される。

Image::Magick もたまにしか使わないので、いつもメソッドやプロパティを忘れてしまうので、一応、メモ代わりに書いておこう。

電気ウナギ的○○

電気ウナギ的○○

About Back

コメント(0)

電気ウナギ的○○

電気ウナギ的○○

About Back

トラックバック(0)

トラックバックURL: https://blog.netandfield.com/mt/mt-tb.cgi/2184

電気ウナギ的○○

About This Site

電気ウナギ的○○
岩国在住。広島で働く超零細IT企業社長のいわゆる社長日記。
何か、酒と食い物のことばかり書いているようで・・・お察しのとおり、肥満体です:-)


2011/06/24
iPhone用サイト公開

Create with jQuery, jQTouch.


CLOSE