- java.lang.Object
-
- javax.imageio.IIOParam
-
- javax.imageio.ImageReadParam
-
- 直系の既知のサブクラス:
JPEGImageReadParam
,TIFFImageReadParam
public class ImageReadParam extends IIOParam
ストリームがデコードされる方法を記述するクラスです。 このクラスまたはサブクラスのインスタンスは、ImageReader
のインスタンスへ規定の「方法」についての情報を提供するために使用されます。ファイルまたはストリームの一部として符号化されたイメージは、空間的な寸法の幅と高さ、バンド数、およびプログレッシブ・デコーディング・パスの数など、複数の次元に拡大して考えられます。 このクラスは、これらのすべての次元で、連続的なイメージの(ハイパー)矩形サブ領域を使用して、復号化の選択を可能にします。 さらに、空間的な寸法は非連続的に間引きできます。 最後に、色および形式の変換は、
BufferedImage
を提供するか、ImageTypeSpecifier
を使用することにより、デスティネーション・イメージのColorModel
とSampleModel
を制御して指定されます。ImageReadParam
オブジェクトは、Java Image I/Oフレームワークのコンテキストで、イメージまたはイメージのセットをストリームから入力に変換する方法を指定するために使用します。 特定のイメージ形式のプラグインは、ImageReader
実装のgetDefaultReadParam
メソッドからImageReadParam
のインスタンスを返します。ImageReadParam
のインスタンスによって管理される状態は、復号化される特定のイメージから独立しています。 実際に復号化が行われる場合、読込みパラメータに設定された値は、ストリームから復号化中のイメージの実際のプロパティおよび復号化されたピクセル・データを受け取るデスティネーションBufferedImage
に結合されます。 たとえば、setSourceRegion
を使用して設定されたソース領域は、実際の有効なソース領域に最初に交差します。 結果は、getDestinationOffset
で返される値によって変換され、実際の有効なデスティネーション領域に交差する結果の矩形が、書き込まれるデスティネーション領域になります。ImageReadParam
によって指定されたパラメータは、次のようにイメージに適用されます。 最初に、描画のサイズがsetSourceRenderSize
によって設定されている場合、復号化されるイメージ全体はgetSourceRenderSize
により指定されたサイズで描画されます。 それ以外の場合、イメージはImageReader.getWidth
およびImageReader.getHeight
によって指定された実際のサイズで描画されます。次に、イメージは
getSourceXOffset
、getSourceYOffset
、getSourceWidth
、およびgetSourceHeight
によって指定されたソース領域にクリップされます。結果の領域は、
IIOParam.setSourceSubsampling
によって指定された係数によって間引きされます。 最初のピクセル、行あたりピクセル数、および行数は、すべてサブサンプリング設定に依存します。 幅w
、高さh
の結果の矩形の最小X座標とY座標(minX
、minY
)を呼び出します。この矩形は、(
getDestinationOffset().x
、getDestinationOffset().y
)にオフセットされ、デスティネーション境界にクリップされます。 デスティネーション・イメージが設定されていない場合、デスティネーションは、ソース領域のすべてのピクセルをデスティネーションに書込みできるように、幅getDestinationOffset().x
+w
、高さgetDestinationOffset().y
+h
に定義されます。サブサンプリング後に、デスティネーション・イメージ内に配置され、
getSourceMinProgressivePass
とgetSourceNumProgressivePasses
によって指定されるプログレッシブ・パスの1つに書き込まれるピクセルは、次の手順に渡されます。最後に、各ピクセルのソース・サンプルは
setDestinationBands
のコメントに記述されるアルゴリズムを使用して、デスティネーション・バンドにマッピングされます。プラグインの書込み側は、プラグイン固有の追加のインタフェースを実装するサブクラスを提供することにより、
ImageReadParam
の機能を拡張できます。 どのインタフェースが利用可能か、それがどのように使用されるかは、プラグインによります。 読取り側は、認識しないImageReadParam
サブクラスの拡張機能をそのまま無視します。 また、getDefaultReadParam
を介して、読取り側自体のImageReadParam
インスタンスを作成する場合、通常、使用不可であるオプション機能はすべて無視されます。クエリー・メソッドは、将来のために用意されている場合を除き、
ImageReader
のすべての実装でサポートされる必要があります。たとえば、ソースの描画サイズはオプションですが、サブサンプリングはサポートされる必要があります。- 関連項目:
ImageReader
,ImageWriter
,ImageWriteParam
-
-
フィールドのサマリー
フィールド 修飾子と型 フィールド 説明 protected boolean
canSetSourceRenderSize
このImageReadParam
がソースの描画寸法を設定できる場合はtrue
です。protected BufferedImage
destination
現在のデスティネーションBufferedImage
、または何も設定されていない場合はnull
です。protected int[]
destinationBands
int
の配列としての、使用するデスティネーション・バンドのセットです。protected int
minProgressivePass
ソースから読み取るプログレッシブ・パスの最小インデックスです。protected int
numProgressivePasses
ソースから読み取るプログレッシブ・パスの最大数です。protected Dimension
sourceRenderSize
canSetSourceRenderSize
がtrue
の場合、目的のソース描画の幅と高さです。それ以外の場合はnull
です。-
クラス javax.imageio.IIOParamで宣言されたフィールド
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 ImageReadParam()
ImageReadParam
を構築します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 boolean
canSetSourceRenderSize()
この読取り側が、復号化プロセスの一部として、setSourceRenderSize
メソッドによって、ソース・イメージを任意のサイズで描画できるようにする場合、true
を返します。BufferedImage
getDestination()
setDestination
メソッドによって現在設定されているBufferedImage
を返します。何も設定されていない場合はnull
を返します。int[]
getDestinationBands()
データが配置されているバンド・インデックスのセットを返します。int
getSourceMaxProgressivePass()
getSourceNumProgressivePasses
がInteger.MAX_VALUE
と等しい場合は、Integer.MAX_VALUE
を返します。int
getSourceMinProgressivePass()
復号化される最初のプログレッシブ・パスのインデックスを返します。int
getSourceNumProgressivePasses()
復号化されるプログレッシブ・パスの数を返します。Dimension
getSourceRenderSize()
setSourceRenderSize
メソッドによって設定されている場合、復号化の間に描画されるように、イメージの幅と高さを返します。void
setDestination(BufferedImage destination)
復号化されるピクセル・データのデスティネーションとして使用するBufferedImage
を提供します。void
setDestinationBands(int[] destinationBands)
データが配置されているデスティネーション・バンドのインデックスを設定します。void
setSourceProgressivePasses(int minPass, int numPasses)
復号化されるプログレッシブ・パスの範囲を設定します。void
setSourceRenderSize(Dimension size)
イメージを任意のサイズで描画できる場合、ソースの幅と高さを指定された値に設定します。-
クラス javax.imageio.IIOParamで宣言されたメソッド
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
-
-
-
フィールドの詳細
-
canSetSourceRenderSize
protected boolean canSetSourceRenderSize
このImageReadParam
がソースの描画寸法を設定できる場合はtrue
です。 デフォルト値はfalse
です。 サブクラスは手動でこの値を設定する必要があります。ソースの描画サイズの設定をサポートしない
ImageReader
は、この値をfalse
に設定する必要があります。
-
sourceRenderSize
protected Dimension sourceRenderSize
canSetSourceRenderSize
がtrue
の場合、目的のソース描画の幅と高さです。それ以外の場合はnull
です。ソースの描画サイズの設定をサポートしない
ImageReader
は、この値を無視します。
-
destination
protected BufferedImage destination
現在のデスティネーションBufferedImage
、または何も設定されていない場合はnull
です。 デフォルト値はnull
です。
-
destinationBands
protected int[] destinationBands
int
の配列としての、使用するデスティネーション・バンドのセットです。 デフォルトの値はnull
です。これは、すべてのデスティネーション・バンドが順番に書き込まれることを示します。
-
minProgressivePass
protected int minProgressivePass
ソースから読み取るプログレッシブ・パスの最小インデックスです。 デフォルトの値は0に設定されます。これは、使用可能な最初のパスから開始するパスが復号化されることを示します。サブクラスは、この値が負にならないようにする必要があります。
-
numProgressivePasses
protected int numProgressivePasses
ソースから読み取るプログレッシブ・パスの最大数です。 デフォルトの値はInteger.MAX_VALUE
に設定されます。これは、使用可能な最後のパスまで復号化されることを示します。サブクラスは、この値が正になるようにする必要があります。 さらに、この値が
Integer.MAX_VALUE
ではない場合、minProgressivePass+numProgressivePasses - 1
はInteger.MAX_VALUE
を超えてはいけません。
-
-
メソッドの詳細
-
setDestination
public void setDestination(BufferedImage destination)
復号化されるピクセル・データのデスティネーションとして使用するBufferedImage
を提供します。 現在設定されているイメージは、read
、readAll
、およびreadRaster
メソッドによって書き込まれ、これに対する参照はこれらのメソッドによって返されます。上述のメソッドからのピクセル・データは、
getDestinationOffset
によって指定される座標の開始時に書き込まれます。destination
がnull
の場合、新しく作成されたBufferedImage
は、これらのメソッドによって返されます。読込み時に、イメージの
ColorModel
とSampleModel
が、ImageReader
のgetImageTypes
メソッドから返されるImageTypeSpecifier
の1つに対応することを確認するために検査されます。 対応しない場合、読取り側はIIOException
をスローします。- パラメータ:
destination
- 書き込まれるBufferedImage、またはnull
。- 関連項目:
getDestination()
-
getDestination
public BufferedImage getDestination()
setDestination
メソッドによって現在設定されているBufferedImage
を返します。何も設定されていない場合はnull
を返します。- 戻り値:
- 書き込まれるBufferedImage。
- 関連項目:
setDestination(java.awt.image.BufferedImage)
-
setDestinationBands
public void setDestinationBands(int[] destinationBands)
データが配置されているデスティネーション・バンドのインデックスを設定します。 インデックスの複製は使用できません。値
null
は、すべてのデスティネーション・バンドが使用されることを示します。デスティネーション・バンドが指定されない場合、デスティネーション・バンドのサブセットの選択は、読込みの出力イメージのバンド数に影響を与えません。作成されるデスティネーション・イメージは、このメソッドが呼び出されなかったかのように、同じバンド数を保持します。 デスティネーション・イメージに異なるバンド数が必要な場合、
ImageReadParam.setDestination
メソッドを使用してイメージを提供する必要があります。デスティネーション・バンドの最大インデックスより大きい値が指定された場合、または使用するソース・バンドの数とデスティネーション・バンドの数が異なる場合、読み込みまたは書込み時に、読取り側または書込み側によって
IllegalArgumentException
がスローされます。ImageReader.checkReadParamBandSettings
メソッドは、このテストを自動化するために使用されます。- パラメータ:
destinationBands
- 使用する整数型バンド・インデックスの配列。- 例外:
IllegalArgumentException
-destinationBands
が負または重複する値を保持する場合。- 関連項目:
getDestinationBands()
,IIOParam.getSourceBands()
,ImageReader.checkReadParamBandSettings(javax.imageio.ImageReadParam, int, int)
-
getDestinationBands
public int[] getDestinationBands()
データが配置されているバンド・インデックスのセットを返します。 値が設定されていない場合、すべてのデスティネーション・バンドが使用されていることを示すnull
が返されます。- 戻り値:
- 使用するデスティネーション・バンドのインデックス、または
null
。 - 関連項目:
setDestinationBands(int[])
-
canSetSourceRenderSize
public boolean canSetSourceRenderSize()
この読取り側が、復号化プロセスの一部として、setSourceRenderSize
メソッドによって、ソース・イメージを任意のサイズで描画できるようにする場合、true
を返します。 このメソッドがfalse
を返す場合、setSourceRenderSize
の呼出しはUnsupportedOperationException
をスローします。- 戻り値:
- ソース描画サイズの設定をサポートする場合は
true
。 - 関連項目:
setSourceRenderSize(java.awt.Dimension)
-
setSourceRenderSize
public void setSourceRenderSize(Dimension size) throws UnsupportedOperationException
イメージを任意のサイズで描画できる場合、ソースの幅と高さを指定された値に設定します。ImageReader
のgetWidth
およびgetHeight
メソッドから返される値は、このメソッドによって影響を受けないことに注意してください。これらは、引き続きイメージのデフォルトのサイズを返します。 同様に、イメージがタイリングされる場合も、タイルの幅と高さはデフォルトのサイズによって指定されます。通常、幅と高さは、幅と高さの比率が
ImageReader.getAspectRatio
から返されるイメージの縦横比と正確に近似するよう選択する必要があります。このプラグインで描画サイズの設定ができない場合、
UnsupportedOperationException
がスローされます。描画サイズの設定を削除するには、
size
に値null
を渡します。- パラメータ:
size
- 望ましい幅と高さを指定するDimension
。- 例外:
IllegalArgumentException
- 幅または高さのいずれかが負または0の場合。UnsupportedOperationException
- このプラグインで、イメージのサイズ変更がサポートされない場合。- 関連項目:
getSourceRenderSize()
,ImageReader.getWidth(int)
,ImageReader.getHeight(int)
,ImageReader.getAspectRatio(int)
-
getSourceRenderSize
public Dimension getSourceRenderSize()
setSourceRenderSize
メソッドによって設定されている場合、復号化の間に描画されるように、イメージの幅と高さを返します。 値null
は、何も設定が行われていないことを示します。- 戻り値:
Dimension
としての、ソース・イメージの描画される幅と高さ。- 関連項目:
setSourceRenderSize(java.awt.Dimension)
-
setSourceProgressivePasses
public void setSourceProgressivePasses(int minPass, int numPasses)
復号化されるプログレッシブ・パスの範囲を設定します。 範囲外のパスは無視されます。プログレッシブ・パスは、通常段階的に高くなる実効解像度でイメージ全体を再復号化します。ただし、この場合より大きい転送帯域幅が必要になります。 もっとも一般的なプログレッシブ・エンコーディングが使用されるのは、JPEG形式の場合です。この場合、連続するパスに、より詳細な高周波イメージ・コンテンツの表現が含まれます。
復号化される実際のパスの数は、ストリームで使用可能な実際のパスの数に基づいて、復号化時に決定されます。 したがって、
minPass+numPasses - 1
が使用可能な最後のパスのインデックスより大きい場合、復号化はそのパスで終了します。Integer.MAX_VALUE
のnumPasses
の値は、minPass
より前方のすべてのパスが読み取られることを示します。 そうでない場合、最後のパスのインデックス(つまり、minPass+numPasses - 1
)はInteger.MAX_VALUE
を超えてはいけません。unsetSourceProgressivePasses
メソッドはありません。setSourceProgressivePasses(0, Integer.MAX_VALUE)
の呼出しによって、同じ効果が得られます。- パラメータ:
minPass
- 復号化される最初のパスのインデックス。numPasses
- 復号化されるパスの最大数。- 例外:
IllegalArgumentException
-minPass
が負の場合、numPasses
が負または0の場合、あるいはnumPasses
がInteger.MAX_VALUE
より小さく、minPass+numPasses - 1
がINTEGER.MAX_VALUE
より大きい場合。- 関連項目:
getSourceMinProgressivePass()
,getSourceMaxProgressivePass()
-
getSourceMinProgressivePass
public int getSourceMinProgressivePass()
復号化される最初のプログレッシブ・パスのインデックスを返します。 値が設定されていない場合、正しい値0が返されます。- 戻り値:
- 復号化される最初のパスのインデックス。
- 関連項目:
setSourceProgressivePasses(int, int)
,getSourceNumProgressivePasses()
-
getSourceMaxProgressivePass
public int getSourceMaxProgressivePass()
getSourceNumProgressivePasses
がInteger.MAX_VALUE
と等しい場合は、Integer.MAX_VALUE
を返します。 それ以外の場合はgetSourceMinProgressivePass()+getSourceNumProgressivePasses() - 1
を返します。- 戻り値:
- 読み取られる最後のパスのインデックス、または
Integer.MAX_VALUE
。
-
getSourceNumProgressivePasses
public int getSourceNumProgressivePasses()
復号化されるプログレッシブ・パスの数を返します。 値が設定されていない場合、正しい値Integer.MAX_VALUE
が返されます。- 戻り値:
- 復号化されるパスの数。
- 関連項目:
setSourceProgressivePasses(int, int)
,getSourceMinProgressivePass()
-
-