JavaTM Platform
Standard Ed. 6

javax.imageio
クラス IIOParam

java.lang.Object
  上位を拡張 javax.imageio.IIOParam
直系の既知のサブクラス:
ImageReadParam, ImageWriteParam

public abstract class IIOParam
extends Object

ストリームをデコードまたはエンコードする方法を記述する、すべてのクラスのスーパークラスです。このクラスは、ImageReadParamImageWriteParam で共有されるすべての変数とメソッドを保持します。

このクラスは、ソース領域およびデスティネーション領域を指定する機構を提供します。読み込み時には、ソースがストリームとなり、メモリ内イメージがデスティネーションとなります。書き込み時には、その逆になります。書き込みの場合、デスティネーション領域はピクセルの置換をサポートするライターだけに使用されます。  

間引きサブサンプリングは、移動可能なサブサンプリンググリッドを使用してリーダーとライターの両方で指定されます。  

ソースとデスティネーションバンドのサブセットを選択できます。


フィールドの概要
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)
          間引きサブサンプリングを指定して入出力に適用します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

sourceRegion

protected Rectangle sourceRegion
ソース領域、または何も設定されない場合は null となリます。


sourceXSubsampling

protected int sourceXSubsampling
水平方向に適用される間引きサブサンプリングです。デフォルトの値は 1 です。値は必ず、正にしてください。


sourceYSubsampling

protected int sourceYSubsampling
垂直方向に適用される間引きサブサンプリングです。デフォルトの値は 1 です。値は必ず、正にしてください。


subsamplingXOffset

protected int subsamplingXOffset
サブサンプリングする前にサブサンプリンググリッドに適用される水平方向のオフセットです。最初に使用するピクセルは、領域の原点から、領域が指定されない場合はイメージからこの量がオフセットされます。


subsamplingYOffset

protected int subsamplingYOffset
サブサンプリングする前にサブサンプリンググリッドに適用される垂直方向のオフセットです。最初に使用するピクセルは、領域の原点から、領域が指定されない場合はイメージからこの量がオフセットされます。


sourceBands

protected int[] sourceBands
使用するソースバンドを示す int 配列、または null です。null の場合、使用するソースバンドのセットは setSourceBands メソッドのコメントに記述されているとおりです。負の値は使用できません。


destinationType

protected ImageTypeSpecifier destinationType
読み込み時にデスティネーションのイメージを生成する、または書き込み時に出力のカラータイプを設定するために使用する ImageTypeSpecifier です。何も設定されていない場合、値は null になります。デフォルトの値は null です。


destinationOffset

protected Point destinationOffset
左上隅のデコードされたピクセルが配置されるデスティネーションのオフセットです。デフォルトの値は (0, 0) です。


defaultController

protected IIOParamController defaultController
activateController メソッドが呼び出されたときに、この IIOParam オブジェクトの設定を指定するために使用するデフォルトの IIOParamController です。このデフォルトはサブクラスで設定します。サブクラスはそれ自体のパラメータ設定用のデフォルトコントローラ (通常は GUI) を提供します。

関連項目:
IIOParamController, getDefaultController(), activateController()

controller

protected IIOParamController controller
activateController メソッドが呼び出されたときに、この IIOParam オブジェクトの設定を指定するために使用する IIOParamController です。この値は null の場合を含むすべてのデフォルトコントローラをオーバーライドします。

関連項目:
IIOParamController, setController(IIOParamController), hasController(), activateController()
コンストラクタの詳細

IIOParam

protected IIOParam()
protected コンストラクタは、サブクラスだけによって呼び出されます。

メソッドの詳細

setSourceRegion

public void setSourceRegion(Rectangle sourceRegion)
処理対象のソース領域を設定します。処理対象の領域は、ソースイメージの左上隅をピクセル (0, 0) として、下方および右方向に値を増加させる矩形で記述されます。使用する実際のピクセル数は、setSourceSubsampling で設定されるサブサンプリング係数によります。サブサンプリングの数がゼロになるように設定された場合、IllegalStateException がスローされます。

このメソッドによって指定された処理対象のソース領域は、実際の入出力時のデスティネーションのオフセット、幅、および高さとともにソースの境界内にちょうど収まるようにクリップされます。

sourceRegion の値 null は任意の領域の指定を削除して、イメージ全体を使用できるようにします。

パラメータ:
sourceRegion - 処理対象のソース領域を指定する Rectangle または null
例外:
IllegalArgumentException - sourceRegionnull 以外の場合で、 sourceRegion.xsourceRegion.y のいずれかが 負の場合
IllegalArgumentException - sourceRegionnull 以外の場合で、 sourceRegion.widthsourceRegion.height のいずれかが負または 0 のとき
IllegalStateException - 領域が間引きされた幅または高さゼロを持つような、 サブサンプリングの場合
関連項目:
getSourceRegion(), setSourceSubsampling(int, int, int, int), setDestinationOffset(java.awt.Point), getDestinationOffset()

getSourceRegion

public Rectangle getSourceRegion()
使用するソース領域を返します。返される値は setSourceRegion の直前の呼び出しによって設定された値です。領域セットがない場合は null になります。

戻り値:
Rectangle としての処理対象ソース領域、 または null
関連項目:
setSourceRegion(java.awt.Rectangle)

setSourceSubsampling

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 - 間引きされた出力がピクセルを保持していないような、 ソース領域の場合

getSourceXSubsampling

public int getSourceXSubsampling()
ピクセルごとに浮き出るソース列の数を返します。

setSourceSubsampling が呼び出されなかった場合、正しい値 1 が返されます。

戻り値:
ソースサブサンプリング周期 X
関連項目:
setSourceSubsampling(int, int, int, int), getSourceYSubsampling()

getSourceYSubsampling

public int getSourceYSubsampling()
ピクセルごとに浮き出るソース行の数を返します。

setSourceSubsampling が呼び出されなかった場合、正しい値 1 が返されます。

戻り値:
ソースサブサンプリングの周期 Y
関連項目:
setSourceSubsampling(int, int, int, int), getSourceXSubsampling()

getSubsamplingXOffset

public int getSubsamplingXOffset()
サブサンプリンググリッドの水平方向のオフセットを返します。

setSourceSubsampling が呼び出されなかった場合、正しい値 0 が返されます。

戻り値:
ソースサブサンプリンググリッドの X オフセット
関連項目:
setSourceSubsampling(int, int, int, int), getSubsamplingYOffset()

getSubsamplingYOffset

public int getSubsamplingYOffset()
サブサンプリンググリッドの垂直方向のオフセットを返します。

setSourceSubsampling が呼び出されなかった場合、正しい値 0 が返されます。

戻り値:
ソースサブサンプリンググリッドの Y オフセット
関連項目:
setSourceSubsampling(int, int, int, int), getSubsamplingXOffset()

setSourceBands

public void setSourceBands(int[] sourceBands)
使用するソースバンドのインデックスを設定します。インデックスの複製は使用できません。

null は、すべてのソースバンドが使用されることを示します。

使用可能な最大ソースバンドインデックスより大きい値が指定された場合、または使用するソースバンドとデスティネーションバンドの数が異なる場合、IllegalArgumentException は、読み込み時にリーダーまたはライターによってスローされます。このテストを自動化するために、ImageReader.checkReadParamBandSettings メソッドが使用されます。

意味上では、コピーは配列から作成されます。この呼び出しのあとに、配列の内容が変更されても、IIOParam には何の影響もありません。

パラメータ:
sourceBands - 使用する整数型バンドインデックスの 配列
例外:
IllegalArgumentException - sourceBands が 負または重複する値を保持する場合
関連項目:
getSourceBands(), ImageReadParam.setDestinationBands(int[]), ImageReader.checkReadParamBandSettings(javax.imageio.ImageReadParam, int, int)

getSourceBands

public int[] getSourceBands()
使用するソースバンドのセットを返します。返される値は、直前の setSourceBands の呼び出しによって設定された値、または setSourceBands を呼び出さなかった場合は null です。

意味上では、返される配列はコピーです。この呼び出しのあとに、配列の内容が変更されても、IIOParam には何の影響もありません。

戻り値:
使用するソースバンドのセット、 または null
関連項目:
setSourceBands(int[])

setDestinationType

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()

getDestinationType

public ImageTypeSpecifier getDestinationType()
ImageTypeSpecifier として、setDestination(ImageTypeSpecifier) の呼び出しによって設定された場合、読み込みによって返されるイメージのタイプを返します。設定されなかった場合、null が返されます。

戻り値:
デスティネーションのタイプを記述する ImageTypeSpecifier、 または null
関連項目:
setDestinationType(javax.imageio.ImageTypeSpecifier)

setDestinationOffset

public void setDestinationOffset(Point destinationOffset)
読み込み時の場合は、将来デコードされるピクセルが配置されるオフセット、書き込み時の場合は、領域が書き込まれるオフセットをデスティネーションイメージに指定します。

読み込み時に、BufferedImage デスティネーション内に書き込まれる領域は、このオフセットで開始し、処理対象のソース領域、サブサンプリングパラメータ、およびデスティネーションの境界によって決定される幅と高さを持ちます。

通常の書き込みは、このメソッドの影響を受けません。ImageWriter.replacePixels を使用して実行される書き込みだけが影響を受けます。このような書き込みの場合、指定されたオフセットはピクセルが変更される出力ストリームイメージ内にあります。

unsetDestinationOffset メソッドは存在しません。単に setDestinationOffset(new Point(0, 0)) を呼び出してデフォルト値を復元します。

パラメータ:
destinationOffset - Point としての、 デスティネーションのオフセット
例外:
IllegalArgumentException - destinationOffsetnull の場合
関連項目:
getDestinationOffset(), ImageWriter.replacePixels(java.awt.image.RenderedImage, javax.imageio.ImageWriteParam)

getDestinationOffset

public Point getDestinationOffset()
ピクセルが配置されるデスティネーションイメージのオフセットを返します。

setDestinationOffsets が呼び出されなかった場合、X および Y の値がゼロの Point が返されます。これは正しい値です。

戻り値:
Point としての、デスティネーションのオフセット
関連項目:
setDestinationOffset(java.awt.Point)

setController

public void setController(IIOParamController controller)
activateController メソッドを呼び出して、デフォルトコントローラをオーバーライドするときに、この IIOParam オブジェクトの設定を指定するために使用する IIOParamController を設定します。引数が null の場合は、デフォルトのコントローラを含め、どのコントローラも使用されません。デフォルトのコントローラを復元するには、setController(getDefaultController()) を使用します。

パラメータ:
controller - 適切な IIOParamController、または null
関連項目:
IIOParamController, getController(), getDefaultController(), hasController(), activateController()

getController

public IIOParamController getController()
IIOParamController が現在インストールされているものは何でも返します。返される値は、デフォルトが存在する場合はデフォルトであり、null、または最後の setController 呼び出しの引数である場合もあります。

戻り値:
現在インストールされている IIOParamController、または null
関連項目:
IIOParamController, setController(javax.imageio.IIOParamController), getDefaultController(), hasController(), activateController()

getDefaultController

public IIOParamController getDefaultController()
デフォルトの IIOParamController がある場合は、現在インストールされているコントローラとは関係なく、これを返します。デフォルトコントローラがない場合は、null を返します。

戻り値:
デフォルトの IIOParamController、 または null
関連項目:
IIOParamController, setController(IIOParamController), getController(), hasController(), activateController()

hasController

public boolean hasController()
この IIOParam オブジェクトにインストールされたコントローラがある場合は true を返します。getControllernull を返さない場合は true を返します。

戻り値:
コントローラがインストールされている場合は true
関連項目:
IIOParamController, setController(IIOParamController), getController(), getDefaultController(), activateController()

activateController

public boolean activateController()
この IIOParam オブジェクトに対してインストールされている IIOParamController をアクティブにし、結果の値を返します。このメソッドが true を返す場合、この IIOParam オブジェクトのすべての値は次の読み込みまたは書き込み操作で使用する準備ができています。false が返される場合は、このオブジェクト内の設定値への影響はありません。つまり、ユーザーにより操作が取り消されました。

通常のコントローラは、指定されたプラグインの IIOParam のサブクラスに対するユーザーインタフェースを提供する GUI です。ただし、コントローラは GUI である必要はありません。

戻り値:
コントローラが通常どおり完了した場合は true
例外:
IllegalStateException - コントローラが 現在インストールされていない場合
関連項目:
IIOParamController, setController(IIOParamController), getController(), getDefaultController(), hasController()

JavaTM Platform
Standard Ed. 6

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。