モジュール java.desktop
パッケージ javax.imageio

クラスImageReadParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageReadParam
直系の既知のサブクラス:
JPEGImageReadParam, TIFFImageReadParam

public class ImageReadParam extends IIOParam
ストリームが復号化される方法を記述するクラスです。 このクラスまたはサブクラスのインスタンスは、ImageReaderのインスタンスへ規定の「方法」についての情報を提供するために使用されます。

ファイルまたはストリームの一部として符号化されたイメージは、空間的な寸法の幅と高さ、バンド数、およびプログレッシブ・デコーディング・パスの数など、複数の次元に拡大して考えられます。 このクラスは、これらのすべての次元で、連続的なイメージの(ハイパー)矩形サブ領域を使用して、復号化の選択を可能にします。 さらに、空間的な寸法は非連続的に間引きできます。 最後に、色および形式の変換は、BufferedImageを提供するか、ImageTypeSpecifierを使用することにより、デスティネーション・イメージのColorModelSampleModelを制御して指定されます。

ImageReadParamオブジェクトは、Java Image I/Oフレームワークのコンテキストで、イメージまたはイメージのセットをストリームから入力に変換する方法を指定するために使用します。 特定のイメージ形式のプラグインは、ImageReader実装のgetDefaultReadParamメソッドからImageReadParamのインスタンスを返します。

ImageReadParamのインスタンスによって管理される状態は、復号化される特定のイメージから独立しています。 実際に復号化が行われる場合、読込みパラメータに設定された値は、ストリームから復号化中のイメージの実際のプロパティおよび復号化されたピクセル・データを受け取るデスティネーションBufferedImageに結合されます。 たとえば、setSourceRegionを使用して設定されたソース領域は、実際の有効なソース領域に最初に交差します。 結果は、getDestinationOffsetで返される値によって変換され、実際の有効なデスティネーション領域に交差する結果の矩形が、書き込まれるデスティネーション領域になります。

ImageReadParamによって指定されたパラメータは、次のようにイメージに適用されます。 最初に、描画のサイズがsetSourceRenderSizeによって設定されている場合、復号化されるイメージ全体はgetSourceRenderSizeにより指定されたサイズで描画されます。 それ以外の場合、イメージはImageReader.getWidthおよびImageReader.getHeightによって指定された実際のサイズで描画されます。

次に、イメージはgetSourceXOffsetgetSourceYOffsetgetSourceWidth、およびgetSourceHeightによって指定されたソース領域にクリップされます。

結果の領域は、IIOParam.setSourceSubsamplingによって指定された係数によって間引きされます。 最初のピクセル、行あたりピクセル数、および行数は、すべてサブサンプリング設定に依存します。 w、高さhの結果の矩形の最小X座標とY座標(minXminY)を呼び出します。

この矩形は、(getDestinationOffset().xgetDestinationOffset().y)にオフセットされ、デスティネーション境界にクリップされます。 デスティネーション・イメージが設定されていない場合、デスティネーションは、ソース領域のすべてのピクセルをデスティネーションに書込みできるように、幅getDestinationOffset().x+w、高さgetDestinationOffset().y+hに定義されます。

サブサンプリング後に、デスティネーション・イメージ内に配置され、getSourceMinProgressivePassgetSourceNumProgressivePassesによって指定されるプログレッシブ・パスの1つに書き込まれるピクセルは、次のステップに渡されます。

最後に、各ピクセルのソース・サンプルはsetDestinationBandsのコメントに記述されるアルゴリズムを使用して、デスティネーション・バンドにマッピングされます。

プラグインの書込み側は、プラグイン固有の追加のインタフェースを実装するサブクラスを提供することにより、ImageReadParamの機能を拡張できます。 どのインタフェースが利用可能か、それがどのように使用されるかは、プラグインによります。 読取り側は、認識しないImageReadParamサブクラスの拡張機能をそのまま無視します。 また、getDefaultReadParamを介して、読取り側自体のImageReadParamインスタンスを作成する場合、通常、使用不可であるオプション機能はすべて無視されます。

クエリー・メソッドは、将来のために用意されている場合を除き、ImageReaderのすべての実装でサポートされる必要があります。たとえば、ソースの描画サイズはオプションですが、サブサンプリングはサポートされる必要があります。

関連項目: