クラスIIOParam

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

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

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

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

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

  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    activateControllerメソッドが呼び出されたときに、このIIOParamオブジェクトの設定を指定するために使用するIIOParamControllerです。
    activateControllerメソッドが呼び出されたときに、このIIOParamオブジェクトの設定を指定するために使用するデフォルトのIIOParamControllerです。
    protected Point
    左上隅のデコードされたピクセルが配置されるデスティネーションのオフセットです。
    読込み時にデスティネーションのイメージを生成する、または書込み時に出力のカラー・タイプを設定するために使用するImageTypeSpecifierです。
    protected int[]
    使用するソース・バンドを示すint配列、またはnullです。
    protected Rectangle
    ソース領域、または何も設定されない場合はnullとなります。
    protected int
    水平方向に適用される間引きサブサンプリングです。
    protected int
    垂直方向に適用される間引きサブサンプリングです。
    protected int
    サブサンプリングする前にサブサンプリング・グリッドに適用される水平方向のオフセットです。
    protected int
    サブサンプリングする前にサブサンプリング・グリッドに適用される垂直方向のオフセットです。
  • コンストラクタのサマリー

    コンストラクタ
    修飾子
    コンストラクタ
    説明
    protected
    protectedコンストラクタは、サブクラスだけによって呼び出されます。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    このIIOParamオブジェクトに対してインストールされているIIOParamControllerをアクティブにし、結果の値を返します。
    現在インストールされているIIOParamControllerを返します。
    デフォルトのIIOParamControllerがある場合は、現在インストールされているコントローラとは関係なく、これを返します。
    ピクセルが配置されるデスティネーション・イメージのオフセットを返します。
    ImageTypeSpecifierとして、setDestination(ImageTypeSpecifier)の呼出しによって設定された場合、読込みによって返されるイメージのタイプを返します。
    int[]
    使用するソース・バンドのセットを返します。
    使用するソース領域を返します。
    int
    ピクセルごとに浮き出るソース列の数を返します。
    int
    ピクセルごとに浮き出るソース行の数を返します。
    int
    サブサンプリング・グリッドの水平方向のオフセットを返します。
    int
    サブサンプリング・グリッドの垂直方向のオフセットを返します。
    boolean
    このIIOParamオブジェクトにインストールされたコントローラがある場合はtrueを返します。
    void
    activateControllerメソッドを呼び出して、すべてのデフォルト・コントローラをオーバーライドするときに、このIIOParamオブジェクトの設定を指定するために使用するIIOParamControllerを設定します。
    void
    setDestinationOffset(Point destinationOffset)
    読込み時の場合は、将来デコードされるピクセルが配置されるオフセット、書込み時の場合は、領域が書き込まれるオフセットをデスティネーション・イメージに指定します。
    void
    ImageTypeSpecifierを使用して、目的のイメージ形式をデスティネーション・イメージに設定します。
    void
    setSourceBands(int[] sourceBands)
    使用するソース・バンドのインデックスを設定します。
    void
    setSourceRegion(Rectangle sourceRegion)
    処理対象のソース領域を設定します。
    void
    setSourceSubsampling(int sourceXSubsampling, int sourceYSubsampling, int subsamplingXOffset, int subsamplingYOffset)
    間引きサブサンプリングを指定して入出力に適用します。

    クラスオブジェクトで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    修飾子と型
    メソッド
    説明
    protected Object
    このオブジェクトのコピーを作成して、返します。
    boolean
    このオブジェクトと他のオブジェクトが等しいかどうかを示します。
    protected void
    削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。
    最終決定は非推奨であり、将来のリリースで削除される可能性があります。
    final Class<?>
    このObjectの実行時クラスを返します。
    int
    このオブジェクトに対するハッシュ・コード値を返します。
    final void
    このオブジェクトのモニターで待機中のスレッドを1つ再開します。
    final void
    このオブジェクトのモニターで待機中のすべてのスレッドを再開します。
    オブジェクトの文字列表現を返します。
    final void
    現在のスレッドが目覚めるまで待機します。通常、notifiedまたはinterruptedです。
    final void
    wait(long timeoutMillis)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
    final void
    wait(long timeoutMillis, int nanos)
    現在のスレッドは、通常、notifiedまたはinterruptedであるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • フィールド詳細

    • 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)を提供します。
      関連項目:
    • controller

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

    • 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

      public Rectangle getSourceRegion()
      使用するソース領域を返します。 戻り値はsetSourceRegionの直前の呼出しによって設定された値です。領域セットがない場合はnullになります。
      戻り値:
      Rectangleとしての処理対象ソース領域、またはnull
      関連項目:
    • 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
      関連項目:
    • getSourceYSubsampling

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

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

      戻り値:
      ソース・サブサンプリングの周期Y
      関連項目:
    • getSubsamplingXOffset

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

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

      戻り値:
      ソース・サブサンプリング・グリッドのXオフセット
      関連項目:
    • getSubsamplingYOffset

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

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

      戻り値:
      ソース・サブサンプリング・グリッドのYオフセット
      関連項目:
    • setSourceBands

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

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

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

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

      パラメータ:
      sourceBands - 使用する整数型バンド・インデックスの配列。
      スロー:
      IllegalArgumentException - sourceBandsが負または重複する値を保持する場合。
      関連項目:
    • getSourceBands

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

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

      戻り値:
      使用するソース・バンドのセット、またはnull
      関連項目:
    • 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

      public ImageTypeSpecifier getDestinationType()
      ImageTypeSpecifierとして、setDestination(ImageTypeSpecifier)の呼出しによって設定された場合、読込みによって返されるイメージのタイプを返します。 設定されなかった場合、nullが返されます。
      戻り値:
      デスティネーションのタイプを記述するImageTypeSpecifier、またはnull
      関連項目:
    • setDestinationOffset

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

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

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

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

      パラメータ:
      destinationOffset - Pointとしての、デスティネーションのオフセット。
      スロー:
      IllegalArgumentException - destinationOffsetnullの場合。
      関連項目:
    • getDestinationOffset

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

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

      戻り値:
      Pointとしての、デスティネーションのオフセット。
      関連項目:
    • setController

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

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

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

      public boolean hasController()
      このIIOParamオブジェクトにインストールされたコントローラがある場合はtrueを返します。 getControllernullを返さない場合はtrueを返します。
      戻り値:
      コントローラがインストールされている場合はtrue
      関連項目:
    • activateController

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

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

      戻り値:
      コントローラが通常どおり完了した場合はtrue
      スロー:
      IllegalStateException - コントローラが現在インストールされていない場合。
      関連項目: