文章:掌田 津耶乃(All About「Javaプログラミング」旧ガイド)
プラグインで機能拡張しよう!
 |
| FreeCapture3は「Plugins」メニューからプラグインのフィルターを呼び出して処理することができます。 |
フリーの画面キャプチャープログラム「FreeCapture」の第3回です。今回は、イメージをフィルター処理するための仕組みを考えてみることにします。こうした機能は、後からプログラムを作成し追加できるように「プラグイン」と呼ばれる方式で実装されることが多いですね。今回は、この「プラグインによる機能拡張」の仕組みを作成してみましょう。
今回作成するプログラムは、第2回で作成したFreeCaptureを改良したものです。JARファイルをダブルクリックして起動し、現れたウインドウから「Capture」ボタンを押すと画面をキャプチャーし新しいウインドウで表示します。今回のプログラムでは、キャプチャーした画面を表示するウインドウには「Plugins」というメニューが表示されます。ここに、現在利用可能なプラグインが表示されます。マウスをドラッグしてイメージを選択し、この「Plugins」メニューから利用したいプラグインを選ぶと、選択されたイメージにフィルター処理がされます。
 |
| FreeCapture3.jarと同じ場所にある「plugins」フォルダの中にプラグインのプログラムファイルが入っています。 |
配布しているプログラムファイルを見てみるとわかりますが、「Capture3.jar」ファイルと同じ階層に「plugins」というフォルダがあり、その中にプラグイン・ファイル(サンプルとして「SamplePlugin.jar」というプラグイン・ファイルが入っています)が収めてあることがわかります。あらかじめ指定された形に従ってプラグインのプログラムを作成し、これをJARファイルにして「plugins」フォルダに入れれば、起動時にそれらを読み込み、「Plugins」メニューから呼び出して利用できるようになるわけです。
サンプルで用意した「SamplePlugin」というプラグインは、選択されたイメージに赤みをつけるフィルターです。イメージを選択してメニューを選ぶと、その部分のイメージが少し赤くなります。連続して選択すればどんどん濃い赤に変わっていきます。まぁ、たいしたものではありませんが、プラグインによるフィルターのサンプルとして考えてください。(※Mac OS X 10.3までのバージョンでは、インストールされているJavaのバージョンによってはキャプチャーイメージにアルファチャンネルが含まれないため、半透明ではなく単に赤くなる場合があります)