グラフィックスを扱う |
上記の図は、内部でイメージデータがどのように作成されるかを示している。 イメージプロデューサは、 ImageProducer インタフェース に従うオブジェクトであり、Image オブジェクトの raw データを作り出す。 イメージプロデューサはこのデータを ImageConsumer インタフェース に従うオブジェクトであるイメージコンシューマ に提供する。 特製のイメージを作成したり操作したりする必要がなければ、通常はイメージプロデ ューサとイメージコンシューマについて知る必要はない。 AWT が内部で自動的にイメージプロデューサとイメージコンシューマを使用するから である。
AWT では、ユーザがイメージプロデューサとイメージコンシューマの間にイメージフ ィルタ を挿入することを通して、イメージの操作をサポートしている。 イメージフィルタ はプロデューサとコンシューマの間に位置する ImageFilter オブジェクトで あり、コンシューマが受け取る前にイメージデータを変更する。ImageFilter は ImageConsumer インタフェースを実装する。これは、イメージフィルタが、プロデュ ーサがコンシューマに送るメッセージを途中で捕らえるからである。 次の図に、イメージフィルタがイメージプロデューサとイメージコンシューマの間に どのように位置しているかを示す。
イメージフィルタの使用方法
既存のイメージフィルタは簡単に使用することができる。 以下に示すコードを使い、必要に応じてイメージフィルタコンストラクタを変更するだけでよい。
Image sourceImage; ...//Toolkit または Applet の getImage() メソッドを使って sourceImage を 初期化する。 ImageFilter filter = new SomeImageFilter(); ImageProducer producer = new FilteredImageSource(sourceImage.getSource(), filter); Image resultImage = createImage(producer);次のページで、上記のコードがどのように動作するかを解説し、イメージフィルタのある場所を示す。
イメージフィルタの作成方法
ニーズに適合するイメージフィルタがない場合は、読者独自のイメージフィルタを作 成することができる。このページでは、作成方法のヒントをいくつか紹介し、イメージを回転させる特製フィルタの例と解説が記載された場所へのポインタも示す。
グラフィックスを扱う |