クラスJPEGImageWriteParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageWriteParam
javax.imageio.plugins.jpeg.JPEGImageWriteParam

public class JPEGImageWriteParam extends ImageWriteParam
このクラスは、組み込みJPEGライター・プラグインを使用する場合にJPEGの数量化表およびハフマン表を設定する機能と、イメージ用に最適化されたハフマン表を計算するよう要求する機能を追加します。 このクラスのインスタンスは、組み込みJPEG ImageWritergetDefaultImageWriteParamメソッドから返されます。

これらを追加する主な目的は、表の指定を、省略されたストリームのエンコーディングで使用できるようにすることです。 組み込みJPEGライターは、通常のImageWriteParamも受け入れます。この場合、ライターは必要な表を内部的に構築します。

どちらの場合も、ImageWriteParamの品質の設定には、基本となるライブラリの場合と同じ意味があります。1.00はすべての1の数量化表を、0.75は「標準の」視覚的に損失のない数量化表を、0.00はすべての255の数量化表を意味します。

省略されたストリームの表は通常、表だけを含む省略されたストリームを最初に書き込むことにより指定されますが、アプリケーションによっては表が前もって固定されています。 このクラスにより、表をクライアント・コードから直接指定できるようになります。

通常、表はライターに渡されたIIOMetadataオブジェクトで指定され、これらのオブジェクトに含まれる表はすべてストリームに書き込まれます。 メタデータに表が指定されていない場合は、省略されたストリームが書き込まれます。 メタデータに表が含まれておらず、JPEGImageWriteParamで表が指定されない場合、省略されたストリームは「標準の」視覚的に損失のない表を使用してエンコードされます。 最初に表をストリームに書き込まないで、省略されたストリームを書き込む必要がある場合は、表の指定にこのクラスが必要です。 このクラスを使用するためには、ライターに渡されたメタデータ・オブジェクトに表を格納しても、ストリーム・メタデータを提供してもいけません。 デフォルト表の詳細は、JPEGQTableおよびJPEGHuffmanTableを参照してください。

ライターのgetDefaultWriteParamメソッドから返されるデフォルトのJPEGImageWriteParamには表は格納されていません。 デフォルトの表は、ライターから返されるデフォルトのIIOMetadataオブジェクトに含まれています。

メタデータに表が格納されている場合、JPEGImageWriteParamで指定される表は無視されます。 さらに、表のセットが書き込まれると、同じストリームまたは別のストリームへのその後の書込みに対してそれらの表をオーバーライドできるのは、メタデータ内の表だけです。 このクラスを使用して新しい表を指定するためには、ライターのresetメソッドを呼び出す必要があります。

組み込みJPEGプラグインの操作の詳細については、「JPEGメタデータ形式の仕様と使用法に関するノート」を参照してください。

  • フィールドのサマリー

    クラスで宣言されたフィールド ImageWriteParam

    canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, compressionMode, compressionQuality, compressionType, compressionTypes, locale, MODE_COPY_FROM_METADATA, MODE_DEFAULT, MODE_DISABLED, MODE_EXPLICIT, preferredTileSizes, progressiveMode, tileGridXOffset, tileGridYOffset, tileHeight, tileWidth, tilingMode, tilingSet
    修飾子と型
    フィールド
    説明
    protected boolean
    このImageWriteParamでタイリング・グリッド座標パラメータを設定できる場合に、trueとなるbooleanです。
    protected boolean
    この書込み側が、圧縮を使用してイメージを書込みできる場合に、trueとなるbooleanです。
    protected boolean
    このImageWriteParamで、品質パスを増加させる段階的な処理として、イメージの書込みができる場合に、trueとなるbooleanです。
    protected boolean
    このImageWriteParamでタイルの幅と高さのパラメータを設定できる場合に、trueとなるbooleanです。
    protected int
    圧縮設定を制御するモードで、4つのMODE_*値の1つに設定する必要があります。
    protected float
    現在の圧縮品質設定を含むfloatです。
    protected String
    現在の圧縮方式名を含むStringで、設定されていない場合nullです。
    protected String[]
    使用可能な圧縮方式名を含むStringの配列です。
    protected Locale
    圧縮方式名と品質の説明をローカライズするために使用されるLocale、あるいはデフォルトのLocaleを使用するためのnullです。
    static final int
    今後の書込み機能を使用可能にするために、setTilingModesetProgressiveMode、またはsetCompressionModeのようなメソッドに渡すことのできる定数値です。
    static final int
    今後の書込み機能を使用可能にするために、setTilingModesetProgressiveModesetCompressionModeのようなメソッドに渡すことのできる定数値です。
    static final int
    今後の書込み機能を使用不可にするために、setTilingModesetProgressiveModesetCompressionModeのようなメソッドに渡すことのできる定数値です。
    static final int
    今後の書込み機能を使用可能にするために、setTilingModeまたはsetCompressionModeのようなメソッドに渡すことができる定数値です。
    protected Dimension[]
    適切なタイル・サイズの範囲ペアの配列です。
    protected int
    プログレッシブ・エンコーディングを制御するモードで、MODE_EXPLICIT以外の4つのMODE_*値の1つを設定する必要があります。
    protected int
    タイリングが設定されている場合、イメージの起点からタイル・グリッドの原点までの水平座標での距離で、設定されていない場合は0です。
    protected int
    タイリングが設定されている場合、イメージの起点からタイル・グリッドの原点までの垂直座標での距離で、設定されていない場合は0です。
    protected int
    タイリングが設定されている場合は各タイルの高さになり、設定されていない場合は0になります。
    protected int
    タイリングが設定されている場合は各タイルの幅になり、設定されていない場合は0になります。
    protected int
    タイリング設定を制御するモードで、4つのMODE_*値の1つに設定する必要があります。
    protected boolean
    タイリング・パラメータが指定されている場合に、trueとなるbooleanです。

    クラスで宣言されたフィールド IIOParam

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

    コンストラクタ
    コンストラクタ
    説明
    JPEGImageWriteParamを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    現在表が設定されている場合はtrueを返します。
    setEncodeTablesへの直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
    setEncodeTablesへの直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
    boolean
    setOptimizeHuffmanTablesの直前の呼出しに渡された値を返します。setOptimizeHuffmanTablesが呼び出されなかった場合は、falseを返します。
    setEncodeTablesへの直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
    boolean
    JPEGプラグインは損失の発生する圧縮だけをサポートするので、falseを返します。
    void
    setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
    省略されたストリームのエンコードで使用するために数量化表およびハフマン表を設定します。
    void
    setOptimizeHuffmanTables(boolean optimize)
    書込み処理の一部として最適化されたイメージ用ハフマン表を生成するようにライターに通知します。
    void
    以前のすべての圧縮品質設定を削除します。
    void
    現在設定されている数量化表およびハフマン表を削除します。

    クラスで宣言されたメソッド ImageWriteParam

    canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, getBitRate, getCompressionMode, getCompressionQuality, getCompressionQualityDescriptions, getCompressionQualityValues, getCompressionType, getCompressionTypes, getLocale, getLocalizedCompressionTypeName, getPreferredTileSizes, getProgressiveMode, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTilingMode, setCompressionMode, setCompressionQuality, setCompressionType, setProgressiveMode, setTiling, setTilingMode, unsetTiling
    修飾子と型
    メソッド
    説明
    boolean
    書込み側が書込み中に0以外のグリッド座標でタイリングを実行できる場合に、trueを返します。
    boolean
    この書込み側が圧縮をサポートする場合、trueを返します。
    boolean
    品質を段階的に向上させる一連のパスとして、書込み側が出力イメージを書き出すことができる場合にtrueを返します。
    boolean
    書込み側が書込み中にタイリングを実行できる場合、trueを返します。
    float
    getBitRate(float quality)
    入力イメージ・データの各ビットに対して、指定された品質レベルで出力データのビット数の見積もりを示すfloatを返します。
    int
    圧縮がサポートされる場合、現在の圧縮モードを返します。
    float
    現在の圧縮品質設定を返します。
    圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、getCompressionQualityValuesとともに使用できるStringの配列を返します。
    float[]
    圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、getCompressionQualityDescriptionsとともに使用できるfloatの配列を返します。
    現在設定された圧縮方式を返すか、何も設定されていない場合はnullを返します。
    使用可能な圧縮方式のリストを配列またはStringとして返し、これらのインタフェースを使用して圧縮方式を選択できない場合にnullを返します。
    現在設定されているLocaleを返す、あるいはデフォルトLocaleだけがサポートされている場合nullになります。
    getLocaleが返したLocaleを使用して、現在の圧縮方式のローカライズされた名前を返します。
    タイルが出力ファイルまたはストリームでエンコードされるとき、タイルの正規のサイズ範囲を示すDimensionの配列を返します。
    int
    プログレッシブ方式でストリームを書き込むための、現在のモードを返します。
    int
    イメージが出力ストリームに書き込まれるとき、イメージの水平タイル・グリッド座標を返します。
    int
    イメージが出力ストリームに書き込まれるとき、イメージの垂直タイル・グリッド座標を返します。
    int
    イメージが出力ストリームに書き込まれるとき、イメージ内の各タイルの高さを返します。
    int
    イメージが出力ストリームに書き込まれるとき、イメージ内の各タイルの幅を返します。
    int
    タイリングがサポートされている場合、現在のタイリング・モードを返します。
    void
    圧縮を実行するかどうかを指定し、実行する場合は、圧縮パラメータの指定方法を決定します。
    void
    setCompressionQuality(float quality)
    圧縮品質を0から1の間の値に設定します。
    void
    setCompressionType(String compressionType)
    getCompressionTypesで示される値の1つに圧縮方式を設定します。
    void
    品質を向上させる一連のスキャンがストリームに含まれるようなプログレッシブ・モードで、書込み側がイメージを書き出すことを指定します。
    void
    setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
    イメージが出力ストリーム内でタイリングされるよう指定します。
    void
    setTilingMode(int mode)
    イメージを出力ストリーム中にタイリングするか、またタイリングする場合には、タイリング・パラメータの指定方法を指定します。
    void
    setTilingへの呼出しで指定される、以前のタイル・グリッド・パラメータをすべて削除します。

    クラスで宣言されたメソッド IIOParam

    activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
    修飾子と型
    メソッド
    説明
    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であるか、一定のリアルタイムが経過するまで、目覚めるまで待機します。
  • コンストラクタの詳細

    • JPEGImageWriteParam

      public JPEGImageWriteParam(Locale locale)
      JPEGImageWriteParamを構築します。 タイリングはサポートされません。 プログレッシブ・エンコーディングはサポートされます。 デフォルトのプログレッシブ・モードはMODE_DISABLEDです。 JPEGと呼ばれる1つの圧縮形式がサポートされます。 デフォルトの圧縮品質は0.75です。
      パラメータ:
      locale - 圧縮方式名と品質説明をローカライズするためにスーパー・クラスが使用するLocale、またはnull
  • メソッドの詳細

    • unsetCompression

      public void unsetCompression()
      以前のすべての圧縮品質設定を削除します。

      デフォルトの実装は、圧縮品質を0.75Fにリセットします。

      オーバーライド:
      unsetCompression、クラスImageWriteParam
      スロー:
      IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
      関連項目:
    • isCompressionLossless

      public boolean isCompressionLossless()
      JPEGプラグインは損失の発生する圧縮だけをサポートするので、falseを返します。
      オーバーライド:
      isCompressionLossless、クラスImageWriteParam
      戻り値:
      false
      スロー:
      IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
    • areTablesSet

      public boolean areTablesSet()
      現在表が設定されている場合はtrueを返します。
      戻り値:
      表が存在する場合はtrue
    • setEncodeTables

      public void setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
      省略されたストリームのエンコードで使用するために数量化表およびハフマン表を設定します。 各タイプの表は最大で4つです。 メタデータで表が指定されると、これらの表は無視されます。 引数はすべてnull以外である必要があります。 ハフマン表の2つの配列の要素数は同じである必要があります。 メタデータのフレームおよびスキャン・ヘッダーの表指示子は、これらの配列のインデックスと同等であると想定されます。 引数配列は、このメソッドによりコピーされます。
      パラメータ:
      qTables - 数量化表オブジェクトの配列。
      DCHuffmanTables - ハフマン表オブジェクトの配列。
      ACHuffmanTables - ハフマン表オブジェクトの配列。
      スロー:
      IllegalArgumentException - いずれかの引数がnullであるか、4つより多くの要素を持つ場合、またはDC表とAC表の数が異なる場合。
      関連項目:
    • unsetEncodeTables

      public void unsetEncodeTables()
      現在設定されている数量化表およびハフマン表を削除します。
      関連項目:
    • getQTables

      public JPEGQTable[] getQTables()
      setEncodeTablesへの直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
      戻り値:
      JPEGQTableオブジェクトの配列、またはnull
      関連項目:
    • getDCHuffmanTables

      public JPEGHuffmanTable[] getDCHuffmanTables()
      setEncodeTablesへの直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
      戻り値:
      JPEGHuffmanTableオブジェクトの配列、またはnull
      関連項目:
    • getACHuffmanTables

      public JPEGHuffmanTable[] getACHuffmanTables()
      setEncodeTablesへの直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
      戻り値:
      JPEGHuffmanTableオブジェクトの配列、またはnull
      関連項目:
    • setOptimizeHuffmanTables

      public void setOptimizeHuffmanTables(boolean optimize)
      書込み処理の一部として最適化されたイメージ用ハフマン表を生成するようにライターに通知します。 デフォルトは「false」です。 このフラグがtrueに設定されている場合は、メタデータで指定されたすべての表をオーバーライドします。 これは、このフラグをtrueに設定して書き込まれたイメージには常にハフマン表が含まれるということです。
      パラメータ:
      optimize - 書込み時に最適化されたハフマン表を生成するかどうかを示すboolean値。
      関連項目:
    • getOptimizeHuffmanTables

      public boolean getOptimizeHuffmanTables()
      setOptimizeHuffmanTablesの直前の呼出しに渡された値を返します。setOptimizeHuffmanTablesが呼び出されなかった場合は、falseを返します。
      戻り値:
      ライターが最適化されたハフマン表を生成する場合はtrue
      関連項目: