|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.imageio.IIOParam
ストリームをデコードまたはエンコードする方法を記述する、すべてのクラスのスーパークラスです。このクラスは、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)
間引きサブサンプリングを指定して入出力に適用します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
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) を提供します。
IIOParamController
,
getDefaultController()
,
activateController()
protected IIOParamController controller
activateController
メソッドが呼び出されたときに、この IIOParam
オブジェクトの設定を提供するために使用する IIOParamController
です。この値は null の場合を含むすべてのデフォルトコントローラをオーバーライドします。
IIOParamController
,
setController(IIOParamController)
,
hasController()
,
activateController()
コンストラクタの詳細 |
protected IIOParam()
メソッドの詳細 |
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()
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.