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, 2014, Oracle and/or its affiliates. All rights reserved.