目次 | 前の項目 | 次の項目 Java 2D API


5.2 直接方式イメージングのコンセプト

直接方式イメージングモデルは、メモリに格納されている固定解像度のイメージに対応しています。 また、イメージデータに対するフィルタリング操作もサポートしています。 このモデルでは、多くのクラスとインタフェースが使われています。

図 5-1 BufferedImage とサポートクラス

図 5-1 に示すように、BufferedImage はイメージの全体的な管理機能を提供します。 BufferedImage はメモリ内に直接作成でき、それを使って、ファイルまたは URL から取得したイメージデータを保持および操作できます。 BufferedImage は、任意の Graphics2D オブジェクトを使って画面装置に表示したり、適当な Graphics2D コンテキストを使ってほかの出力先にレンダリングしたりできます。 BufferedImage オブジェクトには、Raster オブジェクトと ColorModel オブジェクトが含まれています。

Raster クラスは、イメージデータの管理機能を提供します。 Raster クラスは、イメージの矩形座標を表し、メモリにイメージデータを保持し、単一のイメージデータバッファから複数のサブイメージを作成する仕組みを提供します。 また、イメージ内の特定のピクセルにアクセスするためのメソッドも提供しています。 Raster オブジェクトには、DataBuffer オブジェクトと SampleModel オブジェクトが含まれています。

DataBuffer クラスは、メモリ内にピクセルデータを保持します。

SampleModel クラスは、バッファのデータを解釈し、それを個別のピクセルまたはピクセルの矩形範囲として提供します。

ColorModel クラスは、イメージのサンプルモデルで提供されるピクセルデータの色を解釈する機能を提供します。

image パッケージでは、ほかに、BufferedImage オブジェクトと Raster オブジェクトに対するフィルタリング操作を定義するクラスが提供されています。 イメージ処理のそれぞれの操作は、BufferedImageOp インタフェースと RasterOp インタフェースのどちらかまたはその両方を実装するクラスに埋め込まれています。 操作クラスでは、実際のイメージ操作を行う filter メソッド群が定義されています。

図 5-2 は、Java 2DTM API のイメージ処理の基本的なモデルです。

図 5-2 イメージ処理モデル

イメージ操作では、次の機能がサポートされています。

イメージの表示と操作だけが必要な場合は、BufferedImage クラスとフィルタリング操作クラスを理解するだけで十分です。 一方、フィルタを記述したりイメージデータに直接アクセスしたりする場合は、BufferedImage クラスと関連のあるクラスを理解する必要があります。


5.2.1 用語

次の用語は、このあとの説明で使われているものです。

データ要素: イメージデータを記憶する単位として使われているプリミティブ型です。 DataBuffer 配列の個々のメンバです。 データバッファ内の要素のレイアウトは、イメージの SampleModel によって行われるピクセルとしてのデータの解釈には依存しません。

サンプル: イメージのピクセルを構成する個別のメンバです。 SampleModel は、DataBuffer の要素をピクセルとそのサンプルに変換する仕組みを提供します。 ピクセルのサンプルは、特定のカラーモデルの基本的な値を表す場合があります。 たとえば、RGB カラーモデルのピクセルは、赤、緑、青という 3 つのサンプルで構成されています。

成分: 色の解釈に依存しないピクセルの値です。 成分とサンプルの違いは、IndexColorModel で役に立ちます。 IndexColorModel の場合、ピクセルの成分は LookupTable のインデックスになります。

バンド: イメージに含まれる同じ種類の全サンプルの集合です。 たとえば、赤の全サンプルや緑の全サンプルなどです。 ピクセルデータはさまざまな方法で格納できますが、Java 2D API では、バンド化方式とピクセルインタリーブ化方式の 2 種類がサポートされています。 バンド化記憶方式の場合、イメージデータはバンドの単位で編成されて、ピクセルは各バンドの同じ位置にあるサンプルデータで構成されます。 ピクセルインタリーブ化記憶方式の場合は、イメージデータはピクセル単位に編成されます。 すべてのピクセルが 1 つの配列に含まれていて、バンドは各ピクセルの同じインデックス位置にあるサンプルの集合で構成されます。

原色: 特定のカラーモデルにおけるカラー値の個別のメンバです。 たとえば、RGB モデルでは、原色の赤と緑と青からカラー値を生成します。



目次 | 前の項目 | 次の項目
Copyright © 1997-2001 Sun Microsystems, Inc. All Rights Reserved.