JavaTM 2 Platform
Standard Ed. 5.0

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.x または sourceRegion.y のいずれかが負の場合
IllegalArgumentException - sourceRegionnull 以外の場合で、sourceRegion.width または sourceRegion.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 2 Platform
Standard Ed. 5.0

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

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