public abstract class IIOParam extends Object
ImageReadParamとImageWriteParamで共有されるすべての変数とメソッドを保持します。
このクラスは、ソース領域およびデスティネーション領域を指定するメカニズムを提供します。 読込み時には、ソースがストリームとなり、メモリー内イメージがデスティネーションとなります。 書込み時には、その逆になります。 書込みの場合、デスティネーション領域はピクセルの置換をサポートするライターだけに使用されます。
間引きサブサンプリングは、移動可能なサブサンプリング・グリッドを使用してリーダーとライターの両方で指定されます。
ソースとデスティネーション・バンドのサブセットを選択できます。
| 修飾子と型 | フィールド | 説明 |
|---|---|---|
protected IIOParamController |
controller |
activateControllerメソッドが呼び出されたときに、このIIOParamオブジェクトの設定を指定するために使用するIIOParamControllerです。 |
protected IIOParamController |
defaultController |
activateControllerメソッドが呼び出されたときに、このIIOParamオブジェクトの設定を指定するために使用するデフォルトのIIOParamControllerです。 |
protected Point |
destinationOffset |
左上隅のデコードされたピクセルが配置されるデスティネーションのオフセットです。
|
protected ImageTypeSpecifier |
destinationType |
読込み時にデスティネーションのイメージを生成する、または書込み時に出力のカラー・タイプを設定するために使用する
ImageTypeSpecifierです。 |
protected int[] |
sourceBands |
使用するソース・バンドを示す
int配列、またはnullです。 |
protected Rectangle |
sourceRegion |
ソース領域、または何も設定されない場合は
nullとなります。 |
protected int |
sourceXSubsampling |
水平方向に適用される間引きサブサンプリングです。
|
protected int |
sourceYSubsampling |
垂直方向に適用される間引きサブサンプリングです。
|
protected int |
subsamplingXOffset |
サブサンプリングする前にサブサンプリング・グリッドに適用される水平方向のオフセットです。
|
protected int |
subsamplingYOffset |
サブサンプリングする前にサブサンプリング・グリッドに適用される垂直方向のオフセットです。
|
| 修飾子 | コンストラクタ | 説明 |
|---|---|---|
protected |
IIOParam() |
protectedコンストラクタは、サブクラスだけによって呼び出されます。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
boolean |
activateController() |
この
IIOParamオブジェクトに対してインストールされているIIOParamControllerをアクティブにし、結果の値を返します。 |
IIOParamController |
getController() |
現在インストールされている
IIOParamControllerを返します。 |
IIOParamController |
getDefaultController() |
デフォルトの
IIOParamControllerがある場合は、現在インストールされているコントローラとは関係なく、これを返します。 |
Point |
getDestinationOffset() |
ピクセルが配置されるデスティネーション・イメージのオフセットを返します。
|
ImageTypeSpecifier |
getDestinationType() |
ImageTypeSpecifierとして、setDestination(ImageTypeSpecifier)の呼出しによって設定された場合、読込みによって返されるイメージのタイプを返します。 |
int[] |
getSourceBands() |
使用するソース・バンドのセットを返します。
|
Rectangle |
getSourceRegion() |
使用するソース領域を返します。
|
int |
getSourceXSubsampling() |
ピクセルごとに浮き出るソース列の数を返します。
|
int |
getSourceYSubsampling() |
ピクセルごとに浮き出るソース行の数を返します。
|
int |
getSubsamplingXOffset() |
サブサンプリング・グリッドの水平方向のオフセットを返します。
|
int |
getSubsamplingYOffset() |
サブサンプリング・グリッドの垂直方向のオフセットを返します。
|
boolean |
hasController() |
この
IIOParamオブジェクトにインストールされたコントローラがある場合はtrueを返します。 |
void |
setController(IIOParamController controller) |
activateControllerメソッドを呼び出して、すべてのデフォルト・コントローラをオーバーライドするときに、このIIOParamオブジェクトの設定を指定するために使用するIIOParamControllerを設定します。 |
void |
setDestinationOffset(Point destinationOffset) |
読込み時の場合は、将来デコードされるピクセルが配置されるオフセット、書込み時の場合は、領域が書き込まれるオフセットをデスティネーション・イメージに指定します。
|
void |
setDestinationType(ImageTypeSpecifier destinationType) |
ImageTypeSpecifierを使用して、目的のイメージ形式をデスティネーション・イメージに設定します。 |
void |
setSourceBands(int[] sourceBands) |
使用するソース・バンドのインデックスを設定します。
|
void |
setSourceRegion(Rectangle sourceRegion) |
処理対象のソース領域を設定します。
|
void |
setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, int subsamplingXOffset, int subsamplingYOffset) |
間引きサブサンプリングを指定して入出力に適用します。
|
protected Rectangle sourceRegion
nullとなります。protected int sourceXSubsampling
1です。 値は必ず、正にしてください。 protected int sourceYSubsampling
1です。 値は必ず、正にしてください。 protected int subsamplingXOffset
protected int subsamplingYOffset
protected int[] sourceBands
int配列、またはnullです。 nullの場合、使用するソース・バンドのセットはsetSourceBandsメソッドのコメントに記述されているとおりです。 負の値は使用できません。 protected ImageTypeSpecifier destinationType
ImageTypeSpecifierです。 何も設定されていない場合、値はnullになります。 デフォルト値はnullです。 protected Point destinationOffset
protected IIOParamController defaultController
activateControllerメソッドが呼び出されたときに、このIIOParamオブジェクトの設定を指定するために使用するデフォルトのIIOParamControllerです。 このデフォルトはサブクラスで設定します。サブクラスはそれ自体のパラメータ設定用のデフォルト・コントローラ(通常はGUI)を提供します。 protected IIOParamController controller
activateControllerメソッドが呼び出されたときに、このIIOParamオブジェクトの設定を指定するために使用するIIOParamControllerです。 この値はnullの場合を含むすべてのデフォルト・コントローラをオーバーライドします。 public void setSourceRegion(Rectangle sourceRegion)
setSourceSubsamplingで設定されるサブサンプリング係数によります。 サブサンプリングの数がゼロになるように設定された場合、IllegalStateExceptionがスローされます。
このメソッドによって指定された処理対象のソース領域は、実際の入出力時のデスティネーションのオフセット、幅、および高さとともにソースの境界内にちょうど収まるようにクリップされます。
sourceRegionの値nullは任意の領域の指定を削除して、イメージ全体を使用できるようにします。
sourceRegion - 処理対象のソース領域を指定するRectangleまたはnull。IllegalArgumentException - sourceRegionがnull以外の場合で、sourceRegion.xとsourceRegion.yのいずれかが負の場合。IllegalArgumentException - sourceRegionがnull以外の場合で、sourceRegion.widthとsourceRegion.heightのいずれかが負または0の場合。IllegalStateException - 領域が間引きされた幅または高さゼロを持つような、サブサンプリングの場合。getSourceRegion(), setSourceSubsampling(int, int, int, int), setDestinationOffset(java.awt.Point), getDestinationOffset()public Rectangle getSourceRegion()
setSourceRegionの直前の呼出しによって設定された値です。領域セットがない場合はnullになります。 Rectangleとしての処理対象ソース領域、またはnull。setSourceRegion(java.awt.Rectangle)public void setSourceSubsampling(int sourceXSubsampling,
int sourceYSubsampling,
int subsamplingXOffset,
int subsamplingYOffset)
sourceXSubsamplingおよびsourceYSubsamplingパラメータは、サブサンプリング周期、つまりすべてのソース・ピクセルのあとに浮き出る行と列の数を指定します。 特に、周期1はすべての行または列を使用し、周期2は1つおきに行または列を使用します。 subsamplingXOffsetおよびsubsamplingYOffsetパラメータは、最初に間引きされたピクセルの領域またはイメージの起点からのオフセットを指定します。 非常に大きなソース・イメージを、間引きされた完全なイメージに組み立てられるデスティネーション領域にサブサンプリングする場合、サブサンプル・グリッドの起点を調整すると、継ぎ目を避けるのに役立ちます。 通常は、これらのパラメータは0のままにしておきます。
使用するピクセル数と走査線の数は次のように計算されます。
走査線の間引きされたピクセルの数は、次の数式で与えられます。
truncate[(width - subsamplingXOffset + sourceXSubsampling - 1) / sourceXSubsampling]
幅がゼロであるような領域の場合、IllegalStateExceptionがスローされます。
使用する走査線の数は同じように計算されます。
サブサンプリング・グリッドを、ソース領域の原点以外の場所から起動させる設定は、大きなイメージの間引きされたタイルを作成するために領域が使用される場合に役立ちます。ここでは、タイルの幅と高さはサブサンプリング周期の倍数ではありません。 サブサンプリング・グリッドがタイル間の一貫性を維持していない場合、タイルの境界にアーティファクトが生じます。 各タイルのサブサンプリング・グリッドのオフセットを調整して補正することにより、これらのアーティファクトを回避できます。 ただし、アーティファクトを回避するためには、すべてのタイルを同じサイズにはできません。 この場合に使用するグリッド・オフセットは次の数式で得られます。
grid offset = [period - (region offset modulo period)] modulo period)
sourceXSubsamplingまたはsourceYSubsamplingのいずれかが0または負の場合、IllegalArgumentExceptionがスローされます。
subsamplingXOffsetまたはsubsamplingYOffsetのいずれかが負、あるいは対応する周期より大きいか等しい場合、IllegalArgumentExceptionがスローされます。
unsetSourceSubsamplingメソッドはありません。単にsetSourceSubsampling(1, 1, 0, 0)を呼び出してデフォルト値を復元します。
sourceXSubsampling - ピクセル間に浮き出る列数。sourceYSubsampling - ピクセル間に浮き出る行数。subsamplingXOffset - 領域内の最初のサブサンプルの水平方向のオフセット。領域が設定されていない場合は、イメージ内の最初のサブサンプルの水平方向のオフセット。subsamplingYOffset - 領域内の最初のサブサンプルの水平方向のオフセット。領域が設定されていない場合は、イメージ内の最初のサブサンプルの水平方向のオフセット。IllegalArgumentException - いずれかの周期が負または0の場合、またはグリッドのオフセットが負か対応する周期より大きい場合。IllegalStateException - 間引きされた出力がピクセルを保持していないような、ソース領域の場合。public int getSourceXSubsampling()
setSourceSubsamplingが呼び出されなかった場合、正しい値1が返されます。
setSourceSubsampling(int, int, int, int), getSourceYSubsampling()public int getSourceYSubsampling()
setSourceSubsamplingが呼び出されなかった場合、正しい値1が返されます。
setSourceSubsampling(int, int, int, int), getSourceXSubsampling()public int getSubsamplingXOffset()
setSourceSubsamplingが呼び出されなかった場合、正しい値0が返されます。
setSourceSubsampling(int, int, int, int), getSubsamplingYOffset()public int getSubsamplingYOffset()
setSourceSubsamplingが呼び出されなかった場合、正しい値0が返されます。
setSourceSubsampling(int, int, int, int), getSubsamplingXOffset()public void setSourceBands(int[] sourceBands)
値nullは、すべてのソース・バンドが使用されることを示します。
使用可能な最大ソース・バンド・インデックスより大きい値が指定された場合、または使用するソース・バンドとデスティネーション・バンドの数が異なる場合、IllegalArgumentExceptionは、読込み時にリーダーまたはライターによってスローされます。 ImageReader.checkReadParamBandSettingsメソッドは、このテストを自動化するために使用されます。
意味上では、コピーは配列から作成されます。この呼出しのあとに、配列の内容が変更されても、IIOParamには何の影響もありません。
sourceBands - 使用する整数型バンド・インデックスの配列。IllegalArgumentException - sourceBandsが負または重複する値を保持する場合。getSourceBands(), ImageReadParam.setDestinationBands(int[]), ImageReader.checkReadParamBandSettings(javax.imageio.ImageReadParam, int, int)public int[] getSourceBands()
setSourceBandsの呼出しによって設定された値、またはsetSourceBandsを呼び出さなかった場合はnullです。
意味上では、返される配列はコピーです。この呼出しのあとに、配列の内容が変更されても、IIOParamには何の影響もありません。
null。setSourceBands(int[])public void setDestinationType(ImageTypeSpecifier destinationType)
ImageTypeSpecifierを使用して、目的のイメージ形式をデスティネーション・イメージに設定します。
読込み時に、このメソッドを使用してデスティネーションのレイアウトが設定された場合、ImageReader readメソッドの各呼出しは、指定されたタイプの指示子によって指定された形式を使用して、新しいBufferedImageを返します。 副作用として、ImageReadParam.setDestination(BufferedImage)によって設定されるすべてのデスティネーションBufferedImageは、デスティネーションとして設定されなくなります。 言い換えると、このメソッドはsetDestination((BufferedImage)null)の呼び出しと考えることもできます。
書込み時に、デスティネーションのタイプはイメージのカラー・タイプを決めるために使用される場合があります。 SampleModel情報は無視されて、nullになります。 たとえば、4バンドのイメージはCMYKまたはRGBAデータのいずれかで表せます。 デスティネーションのタイプが設定された場合、そのColorModelはイメージ自体にあるすべてのColorModelをオーバーライドします。 これは、イメージのColorModelが、書き込まれたバンドのサブセットではなくイメージ全体を参照するので、setSourceBandsを使用する場合に重要です。
destinationType - デスティネーションのレイアウトとカラー・タイプを決定するために使用するImageTypeSpecifier。getDestinationType()public ImageTypeSpecifier getDestinationType()
ImageTypeSpecifierとして、setDestination(ImageTypeSpecifier)の呼出しによって設定された場合、読込みによって返されるイメージのタイプを返します。 設定されなかった場合、nullが返されます。 ImageTypeSpecifier、またはnull。setDestinationType(javax.imageio.ImageTypeSpecifier)public void setDestinationOffset(Point destinationOffset)
読込み時に、BufferedImageデスティネーション内に書き込まれる領域は、このオフセットで開始し、処理対象のソース領域、サブサンプリング・パラメータ、およびデスティネーションの境界によって決定される幅と高さを持ちます。
通常の書込みは、このメソッドの影響を受けません。ImageWriter.replacePixelsを使用して実行される書き込みだけが影響を受けます。 このような書込みの場合、指定されたオフセットはピクセルが変更される出力ストリーム・イメージ内にあります。
unsetDestinationOffsetメソッドはありません。単にsetDestinationOffset(new Point(0, 0))を呼び出してデフォルト値を復元します。
destinationOffset - Pointとしての、デスティネーションのオフセット。IllegalArgumentException - destinationOffsetがnullの場合。getDestinationOffset(), ImageWriter.replacePixels(java.awt.image.RenderedImage, javax.imageio.ImageWriteParam)public Point getDestinationOffset()
setDestinationOffsetsが呼び出されなかった場合、XおよびYの値がゼロのPointが返されます。これは正しい値です。
Pointとしての、デスティネーションのオフセット。setDestinationOffset(java.awt.Point)public void setController(IIOParamController controller)
activateControllerメソッドを呼び出して、すべてのデフォルト・コントローラをオーバーライドするときに、このIIOParamオブジェクトの設定を指定するために使用するIIOParamControllerを設定します。 引数がnullの場合は、デフォルトのコントローラを含め、どのコントローラも使用されません。 デフォルトのコントローラを復元するには、setController(getDefaultController())を使用します。 controller - 適切なIIOParamController、またはnull。IIOParamController, getController(), getDefaultController(), hasController(), activateController()public IIOParamController getController()
IIOParamControllerを返します。 返される値は、デフォルトが存在する場合はデフォルトであり、null、または最後のsetController呼出しの引数である場合もあります。 IIOParamController、またはnull。IIOParamController, setController(javax.imageio.IIOParamController), getDefaultController(), hasController(), activateController()public IIOParamController getDefaultController()
IIOParamControllerがある場合は、現在インストールされているコントローラとは関係なく、これを返します。 デフォルト・コントローラがない場合は、nullを返します。 IIOParamController、またはnull。IIOParamController, setController(IIOParamController), getController(), hasController(), activateController()public boolean hasController()
IIOParamオブジェクトにインストールされたコントローラがある場合はtrueを返します。 getControllerがnullを返さない場合はtrueを返します。 true。IIOParamController, setController(IIOParamController), getController(), getDefaultController(), activateController()public boolean activateController()
IIOParamオブジェクトに対してインストールされているIIOParamControllerをアクティブにし、結果の値を返します。 このメソッドがtrueを返す場合、このIIOParamオブジェクトのすべての値は次の読み込みまたは書込み操作で使用する準備ができています。 falseが返される場合は、このオブジェクト内の設定値への影響はありません。つまり、ユーザーにより操作が取り消されました。
通常、コントローラは、特定のプラグインに対するIIOParamのサブクラスのユーザー・インタフェースを提供するGUIです。 ただし、コントローラはGUIである必要はありません。
true。IllegalStateException - コントローラが現在インストールされていない場合。IIOParamController, setController(IIOParamController), getController(), getDefaultController(), hasController() バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。