Perlで画像の縦横幅を取得する
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2008-11-26
Web のシステムを構築していると、クライアントの画像をサーバへアップロードしたくなる場面が出てきます。Java だと、何年か前までは Commons の FileUpload が定番で、PHP だと定義済み変数 $_FILES で簡単に情報が取得できます。Perl の場合も同様かと思ったのですが、少し状況が違うようです。
Perl の場合は、stat 関数でファイルの情報が取得できます。取得できる情報は全部で 13 個あり、使用頻度が高いのはファイルサイズ(バイト)と更新日くらいでしょうか。しかし、この情報から画像の横幅や縦幅は取得できないので不便なところがあります。
そんな時に使えるのが、Image::Magick というライブラリです。Linux や Mac 用のモジュールの他に Windows 用のモジュールもダウンロードできます。この Image::Magick を使用すれば、サーバ上の画像の幅を取得したり画像のリサイズもできるようになります。簡単な使い方を備忘録として残しておきます。
use Image::Magick;
# インスタンス作成
my $imgMagick = Image::Magick->new;
# 画像読み込み
$imgMagick->Read("saratoga.jpg");
# 縦横幅取得
my ($width, $height) = $imgMagick->Get("width", "height");
関連記事
上記の記事に関連する記事(最新の10件)です。


