ImageMagickは通常のアプリケーションと同様にシステムにインストールされています。CGIなどでごく頻繁に使われるためCGIプログラムの一部だと思われている方も多いかと思いますが、CGIで使用する際にはPerlのモジュールを利用してImageMagickを呼び出して使用しているわけです。そのPerlのモジュールがPerlMagickでありまして、決してPerlMagickがImageMagickと同等のアプリケーションというわけではありませんのでご注意。
Perlで使用する際には、いわゆるオブジェクト指向のクラスやメソッドを呼び出して使います。以下の例ではサムネイルを自動的につくります。
スクリプトを実行するとオリジナルの画像が128×96のサムネイルになって書き出されます。この際注意したいのは、オリジナルの画像は元のまま保持されていることと、書き出しのプログラムなので実行する(書き出す)ディレクトリ先のパーミッションを777などの書き込み権限を与えておくことです。パーミッションについてはエラーメッセージが出ませんのでご注意。
が、どうやらとある環境下では自動的に作成された(書き出された)画像のオーナーがwww-dataになってしまうようです。root権限を持てる環境下であればオーナー変更はわけないのですが、ユーザーレベルで使用している場合は困ります。いろいろ調べてみましたがなかなかそれに相当する記事を見つけることができませんでした。SUExecというキーワードで検索してみるといろいろわかると思いますが、詳しいところは私自身もまだ調べておりません。すみません。
Perlで使用する際には、いわゆるオブジェクト指向のクラスやメソッドを呼び出して使います。以下の例ではサムネイルを自動的につくります。
#!/usr/bin/perl
use strict;
use Image::Magick;
my($image, $status);
$image = Image::Magick->new; #インスタンス生成
$status = $image->Read('oroginal.jpg'); # 画像を読み込み
warn($status) if($status);
$image->Scale('128x96'); # 画像リサイズ
$status = $image->Write('thumnail.jpg'); # 画像書き出し
warn($status) if($status);
undef $image; # オブジェクト破棄
スクリプトを実行するとオリジナルの画像が128×96のサムネイルになって書き出されます。この際注意したいのは、オリジナルの画像は元のまま保持されていることと、書き出しのプログラムなので実行する(書き出す)ディレクトリ先のパーミッションを777などの書き込み権限を与えておくことです。パーミッションについてはエラーメッセージが出ませんのでご注意。
が、どうやらとある環境下では自動的に作成された(書き出された)画像のオーナーがwww-dataになってしまうようです。root権限を持てる環境下であればオーナー変更はわけないのですが、ユーザーレベルで使用している場合は困ります。いろいろ調べてみましたがなかなかそれに相当する記事を見つけることができませんでした。SUExecというキーワードで検索してみるといろいろわかると思いますが、詳しいところは私自身もまだ調べておりません。すみません。


