PR

 テキスト処理が得意なPerlですが,画像ファイルだって扱えます。今回はサムネイルやグラフ作成を通して,画像ファイルの扱い方を考えてみましょう。

 Perlは誤解を受けやすい言語かもしれません。いまだに,CGI(Common Gateway Interface)とPerlを一緒のものだと思い込んでいる人も少なくないようです。変数宣言をしなかったり,暗黙の変数である$_を使って分かりにくく書くことが,Perlっぽい記述と思い込んでいるような人まで見受けられます。そして,「Perlはグラフィックス関係は弱いに違いない!」と思い込んでいる人も少なくないようです。

 これは「文字列操作に強いスクリプト言語」というイメージが強過ぎるせいかもしれません。そんな人が,Perl/Gtkを使えば写真1の画面の中に表示されている50行足らずのスクリプトで,スクロール・バーやコマンド・ボタンが付いた,この画面そのものが表示できると知ったら,驚いてしまうかもしれません。

写真1●Perl/Gtkのサンプル画面
写真1●Perl/Gtkのサンプル画面
中に表示されているスクリプト(Pic1.pl)で,このようなウインドウをPerlを用いて作成できます。

 しかし,それほどビックリすることではないのです。第3回で取り上げたXSなどを使って,他のライブラリの力を借りれば,GUIや画像の操作も,Perlではお手のものなのですから。

 ところで,最近ではデジタルカメラで撮影したり,ダウンロードしたりと画像ファイルを扱う機会も多くなっています。しかし,集めた後で,その画像を整理するのはかなり面倒です。適当にディレクトリを作って押し込んでしまい,どこにどんなファイルが入っているのか分からなってしまうことも多いでしょう。

 そのようなとき,画像ファイルをまとめて一度に見られたら整理も楽になるのではないでしょうか。

 また,第4回ではアクセス・ログを集計して求めた結果をExcelファイルやPDFファイルに変換しました。しかし,こうした集計値は数字で表すよりも,グラフにした方が違いをより直感的に理解できるでしょう。

 そこで,今回はディレクトリに格納されている画像ファイルを縮小して表示させる方法とアクセス・ログなどからグラフを作成する方法について考えながら,画像データの扱い方を説明します。

バイナリでインストール

 本題に入る前に,モジュールのインストールに関して,ちょっとした注意点があります。これまで紹介してきた中にもありましたが,モジュールの中にはC言語で書かれたライブラリを利用するものもあります。

 そして,そのライブラリがさらに別のライブラリを必要とする場合も少なくありません。特に画像関係やGUI関係のモジュールは必要になるライブラリも多く,インストールが面倒なことが多いのです。

 これらのライブラリやPerlのモジュールの中には,RPM(Red Hat Package Management)パッケージなど既にコンパイルされたものが提供されている場合もあります。実際,今回必要であったライブラリやモジュールの多くは,筆者の利用しているディストリビューション(メディアラボのLinux MLD6)のCD-ROMにRPMパッケージとして納められていました。こうしたものを利用すれば,面倒なダウンロードやコンパイルを避けられます。

 ただ,バイナリ形式のものは,リリースされている最新ソースよりも古いバージョンであることが少なくありません。利用するライブラリやモジュールが配布されている,それぞれのホームページを参照し,最新版であることを確認してから利用することをお勧めします。

 また,バイナリ形式のパッケージではヘッダー・ファイルなどが別のパッケージに納められていることがあります。このため,それらを利用するモジュールが作成できないこともあります。そのようなときは,“-devel-”といった名前が含まれる開発用パッケージを導入してみてください。