use MT::Image;
my $img = MT::Image->new( Filename => '/path/to/image.jpg' );
my($blob, $w, $h) = $img->scale( Width => 100 );
open FH, ">thumb.jpg" or die $!;
binmode FH;
print FH $blob;
close FH;
MT::Imageには、NetPBMツールまたはImageMagickとPerlモジュールのImage::Magickを利用した、画像処理のためのルーチンが用意されています。バックエンドでNetPBMとImageMagickのいずれを使うかは、環境変数ImageDriverの設定(あるいはMT::ConfigMgrクラスのインスタンス中の同名の変数)によって決まります。
このモジュールは、アップロードした画像のサムネイルを作成するときに利用されます。
MT::Imageオブジェクトを新規に生成します。成功すると作成したオブジェクトを返し、エラー発生時にはundefを返します。エラー・メッセージはMT::Image->errstrで取得できます。%argには次の項目を指定できます。
オブジェクトに読み込む画像のパスです。
ファイルやデータベースなどから読み込み済みの画像データの内容です。
Dataに読み込まれているデータの画像フォーマットです。JPGまたはGIFのいずれかとなります。
画像オブジェクト$imgからサムネイルを作成します。作成に成功すると、サムネイル画像の内容(バイナリー・データ)、リサイズした画像の幅、高さを含む一覧を返します。エラー発生時にはundefを返し、エラー・メッセージは$img->errstrから取得できます。%argには次の項目を指定できます。
リサイズ後の画像の幅と高さです。どちらか一方のみを指定すると、縦横の比率を保つように他方もリサイズされます。どちらも指定しない場合は元の画像の100%(つまり元と同じサイズ)になります。両方を指定すると、縦横の比率が変わって画像が歪むことがあります。
WidthおよびHeightの代わりに指定するもので、幅と高さの両方に適用する縮尺を、元の画像に対するパーセンテージで指定します(つまり100を指定するとリサイズなしで元の画像と同じサイズになります)。