モジュール java.desktop
パッケージ javax.imageio

クラスImageWriteParam

  • 直系の既知のサブクラス:
    BMPImageWriteParam, JPEGImageWriteParam

    public class ImageWriteParam
    extends IIOParam
    ストリームのエンコードの方法を記述するクラスです。 このクラスまたはサブクラスのインスタンスは、ImageWriterのインスタンスへ規定の「方法」についての情報を提供するために使用されます。

    特定のイメージ形式のためのプラグインで、このクラスのサブクラスを定義し、ImageWriterが実装するgetDefaultWriteParamメソッドからそのクラスのオブジェクトを返すことができます。 たとえば、組み込みJPEGの書込み側プラグインは、javax.imageio.plugins.jpeg.JPEGImageWriteParamのインスタンスを返します。

    書き込むイメージの範囲は、まずIIOParam.setSourceRegionがあれば、これが指定する矩形と、イメージの実際の範囲が交差することにより決定されます。 生成される矩形の幅または高さが0の場合、書込み側はIIOExceptionをスローします。 交差がある場合、最初にサブサンプルされたピクセルで書込みが始まり、IIOParam.setSourceSubsamplingで指定される水平および垂直のサブサンプリング係数に従って、交差した範囲内に追加のピクセルを組み込みます。

    タイリング、プログレッシブ・エンコーディング、圧縮のような個々の機能は、4つのモードのうちの1つに設定できます。 MODE_DISABLEDは機能を使用不可にします。MODE_DEFAULTは、書込み側で制御されるパラメータ値で機能を使用可能にします。MODE_EXPLICITは機能を使用可能にし、追加パラメータを提供するためのsetメソッドを使用可能にします。MODE_COPY_FROM_METADATAは、書込み側に渡されるストリームとイメージ・メタデータ・オブジェクトから、該当するパラメータ値をコピーします。 すべての機能のデフォルトは、MODE_COPY_FROM_METADATAです。 標準以外の機能をサブクラス内で提供することは推奨しますが、同様のスキームの使用には不要です。

    プラグインの書込み側は、プラグイン固有の追加のインタフェースを実装するサブクラスを提供することにより、ImageWriteParamの機能を拡張できます。 どのインタフェースが利用可能か、それがどのように使用されるかは、プラグインによります。 書込み側では、認識しないImageWriteParamサブクラスの拡張機能はそのまま無視します。 また、getDefaultWriteParamを介して、読取り側自体のImageWriteParamインスタンスを作成する場合、通常、使用不可であるオプション機能はすべて無視されます。

    クエリー・メソッドは、将来のために用意されている場合を除き、ImageWriterのすべての実装でサポートされる必要があります。たとえば、プログレッシブ・エンコーディングはオプションですが、サブサンプリングはサポートされる必要があります。

    関連項目:
    ImageReadParam
    • フィールドのサマリー

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

      コンストラクタ 
      修飾子 コンストラクタ 説明
      protected ImageWriteParam()
      空のImageWriteParamを構築します。
        ImageWriteParam​(Locale locale)
      指定されたLocaleを使用するために設定されるImageWriteParamを構築します。
    • メソッドのサマリー

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

      • MODE_COPY_FROM_METADATA

        public static final int MODE_COPY_FROM_METADATA
        今後の書込み機能を使用可能にするために、setTilingModesetProgressiveMode、またはsetCompressionModeのようなメソッドに渡すことのできる定数値です。 つまり、このモードが使用可能な場合、書込み操作に渡されるイメージ・メタデータまたはストリームのコンテンツ、あるいはその両方のコンテンツに基づいて、ストリームのタイリング、プログレッシブ・エンコーディング、または圧縮が行われ、該当するアクセス用メソッドはIllegalStateExceptionをスローします。

        これはすべての機能のデフォルト・モードなので、メタデータを含む読込みに続いてメタデータを含む書込みを行うと、可能な限り多くの情報が保存されます。

        関連項目:
        MODE_DISABLED, MODE_EXPLICIT, MODE_DEFAULT, setProgressiveMode(int), getProgressiveMode(), setTilingMode(int), getTilingMode(), setCompressionMode(int), getCompressionMode(), 定数フィールド値
      • canWriteTiles

        protected boolean canWriteTiles
        このImageWriteParamでタイルの幅と高さのパラメータを設定できる場合に、trueとなるbooleanです。 デフォルト値はfalseです。 サブクラスでは、値を手動で設定する必要があります。

        タイルの書込みをサポートしないサブクラスでは、この値をfalseに設定する必要があります。

      • preferredTileSizes

        protected Dimension[] preferredTileSizes
        適切なタイル・サイズの範囲ペアの配列です。 デフォルト値はnullで、これは適切なサイズがないことを示します。 値がnullでない場合、2以上の同じ長さを持つ必要があります。

        タイルの書込みをサポートしないサブクラスでは、この値を無視できます。

        関連項目:
        getPreferredTileSizes()
      • tilingSet

        protected boolean tilingSet
        タイリング・パラメータが指定されている場合に、trueとなるbooleanです。

        タイルの書込みをサポートしないサブクラスでは、この値を無視できます。

      • tileWidth

        protected int tileWidth
        タイリングが設定されている場合は各タイルの幅になり、設定されていない場合は0になります。

        タイリングをサポートしないサブクラスでは、この値を無視できます。

      • tileHeight

        protected int tileHeight
        タイリングが設定されている場合は各タイルの高さになり、設定されていない場合は0になります。 初期値は0です。

        タイリングをサポートしないサブクラスでは、この値を無視できます。

      • canOffsetTiles

        protected boolean canOffsetTiles
        このImageWriteParamでタイリング・グリッド座標パラメータを設定できる場合に、trueとなるbooleanです。 デフォルト値はfalseです。 サブクラスでは、値を手動で設定する必要があります。

        タイルの書込みをサポートしない、または書込みをサポートしても、タイルの座標化をサポートしないサブクラスでは、この値はfalseに設定する必要があります。

      • tileGridXOffset

        protected int tileGridXOffset
        タイリングが設定されている場合、イメージの起点からタイル・グリッドの原点までの水平座標での距離で、設定されていない場合は0です。 初期値は0です。

        タイルの座標化をサポートしないサブクラスでは、この値を無視できます。

      • tileGridYOffset

        protected int tileGridYOffset
        タイリングが設定されている場合、イメージの起点からタイル・グリッドの原点までの垂直座標での距離で、設定されていない場合は0です。 初期値は0です。

        タイルの座標化をサポートしないサブクラスでは、この値を無視できます。

      • canWriteProgressive

        protected boolean canWriteProgressive
        このImageWriteParamで、品質パスを増加させる段階的な処理として、イメージの書込みができる場合に、trueとなるbooleanです。 デフォルト値はfalseです。 サブクラスでは、値を手動で設定する必要があります。

        プログレッシブ・エンコーディングをサポートしないサブクラスでは、この値はfalseに設定する必要があります。

      • progressiveMode

        protected int progressiveMode
        プログレッシブ・エンコーディングを制御するモードで、MODE_EXPLICIT以外の4つのMODE_*値の1つを設定する必要があります。 デフォルトはMODE_COPY_FROM_METADATAです。

        プログレッシブ・エンコーディングをサポートしないサブクラスでは、この値を無視できます。

        関連項目:
        MODE_DISABLED, MODE_EXPLICIT, MODE_COPY_FROM_METADATA, MODE_DEFAULT, setProgressiveMode(int), getProgressiveMode()
      • canWriteCompressed

        protected boolean canWriteCompressed
        この書込み側が、圧縮を使用してイメージを書込みできる場合に、trueとなるbooleanです。 デフォルト値はfalseです。 サブクラスでは、値を手動で設定する必要があります。

        圧縮をサポートしないサブクラスでは、この値はfalseに設定する必要があります。

      • compressionTypes

        protected String[] compressionTypes
        使用可能な圧縮方式名を含むStringの配列です。 サブクラスでは、値を手動で設定する必要があります。

        圧縮をサポートしないサブクラスでは、この値を無視できます。

      • compressionType

        protected String compressionType
        現在の圧縮方式名を含むStringで、設定されていない場合nullです。

        圧縮をサポートしないサブクラスでは、この値を無視できます。

      • compressionQuality

        protected float compressionQuality
        現在の圧縮品質設定を含むfloatです。 初期値は1.0Fです。

        圧縮をサポートしないサブクラスでは、この値を無視できます。

      • locale

        protected Locale locale
        圧縮方式名と品質の説明をローカライズするために使用されるLocale、あるいはデフォルトのLocaleを使用するためのnullです。 サブクラスでは、値を手動で設定する必要があります。
    • コンストラクタの詳細

      • ImageWriteParam

        protected ImageWriteParam()
        空のImageWriteParamを構築します。 インスタンス変数を適切に設定するのは、サブクラスの仕事になります。
      • ImageWriteParam

        public ImageWriteParam​(Locale locale)
        指定されたLocaleを使用するために設定されるImageWriteParamを構築します。
        パラメータ:
        locale - 圧縮方式名と品質の説明をローカライズするために使用されるLocale、またはnull
    • メソッドの詳細

      • getLocale

        public Locale getLocale()
        現在設定されているLocaleを返す、あるいはデフォルトLocaleだけがサポートされている場合nullになります。
        戻り値:
        現在のLocale、またはnull
      • canWriteTiles

        public boolean canWriteTiles()
        書込み側が書込み中にタイリングを実行できる場合、trueを返します。 このメソッドがfalseを返す場合、setTilingUnsupportedOperationExceptionをスローします。
        戻り値:
        書込み側がタイリングをサポートする場合true
        関連項目:
        canOffsetTiles(), setTiling(int, int, int, int)
      • canOffsetTiles

        public boolean canOffsetTiles()
        書込み側が書込み中に0以外のグリッド座標でタイリングを実行できる場合に、trueを返します。 このメソッドがfalseを返す場合、グリッド座標の引数がどちらも0でないとき、setTilingUnsupportedOperationExceptionをスローします。 canWriteTilesfalseを返す場合、このメソッドもfalseを返します。
        戻り値:
        書込み側が0以外のタイル座標をサポートする場合true
        関連項目:
        canWriteTiles(), setTiling(int, int, int, int)
      • setTilingMode

        public void setTilingMode​(int mode)
        イメージを出力ストリーム中にタイリングするか、またタイリングする場合には、タイリング・パラメータの指定方法を指定します。 モードは、次のように解釈されます。
        • MODE_DISABLED - イメージはタイリングされません。setTilingIllegalStateExceptionをスローします。
        • MODE_DEFAULT - イメージはデフォルト・パラメータを使用してタイリングされます。setTilingIllegalStateExceptionをスローします。
        • MODE_EXPLICIT - イメージはsetTilingメソッドで与えられるパラメータに従ってタイリングされます。 前もって設定されたタイリング・パラメータはすべて破棄されます。
        • MODE_COPY_FROM_METADATA - イメージは、書込みに渡されるメタデータ・オブジェクトに準拠します。setTilingIllegalStateExceptionをスローします。
        パラメータ:
        mode - タイリングに使用するモード。
        例外:
        UnsupportedOperationException - canWriteTilesfalseを返す場合。
        IllegalArgumentException - modeが上記のモードのいずれでもない場合。
        関連項目:
        setTiling(int, int, int, int), getTilingMode()
      • getTilingMode

        public int getTilingMode()
        タイリングがサポートされている場合、現在のタイリング・モードを返します。 サポートされていない場合は、UnsupportedOperationExceptionをスローします。
        戻り値:
        現在のタイリング・モード。
        例外:
        UnsupportedOperationException - canWriteTilesfalseを返す場合。
        関連項目:
        setTilingMode(int)
      • getPreferredTileSizes

        public Dimension[] getPreferredTileSizes()
        タイルが出力ファイルまたはストリームでエンコードされるとき、タイルの正規のサイズ範囲を示すDimensionの配列を返します。 返される配列はコピーです。

        情報はペアで返されます。ペアの最初の要素には、包括的な最小の幅と高さが、次の要素には包括的な最大の幅と高さが含まれます。 あわせて、各ペアはサイズの有効範囲を定義します。 固定サイズを指定するには、両方の要素に同じ幅と高さを使用します。 任意の範囲を指定するには、Dimensionの実際の配列の代わりにnullの値が使用されます。

        コンストラクタに配列が指定されなくてもタイリングが使用できる場合、このメソッドはnullを返します。

        戻り値:
        2以上の同じ長さを持つDimensionの配列、またはnull
        例外:
        UnsupportedOperationException - プラグインがタイリングをサポートしない場合。
      • setTiling

        public void setTiling​(int tileWidth,
                              int tileHeight,
                              int tileGridXOffset,
                              int tileGridYOffset)
        イメージが出力ストリーム内でタイリングされるよう指定します。 tileWidthtileHeightパラメータは、ファイル内のタイルの幅と高さを指定します。 タイルの幅または高さがイメージの幅または高さよりも大きい場合、イメージはその範囲内にタイリングされません。

        canOffsetTilesfalseを返す場合、tileGridXOffsettileGridYOffsetパラメータは0になります。

        パラメータ:
        tileWidth - 各タイルの幅。
        tileHeight - 各タイルの高さ。
        tileGridXOffset - タイル・グリッドの水平座標。
        tileGridYOffset - タイル・グリッドの垂直座標。
        例外:
        UnsupportedOperationException - プラグインがタイリングをサポートしない場合。
        IllegalStateException - タイリング・モードがMODE_EXPLICITでない場合。
        UnsupportedOperationException - プラグインがグリッド座標をサポートせず、グリッド座標がどちらも0でない場合。
        IllegalArgumentException - タイル・サイズがgetPreferredTileSizesが返した使用可能な範囲内にない場合。
        IllegalArgumentException - tileWidthまたはtileHeightが0以下の場合。
        関連項目:
        canWriteTiles, canOffsetTiles, getTileWidth(), getTileHeight(), getTileGridXOffset(), getTileGridYOffset()
      • unsetTiling

        public void unsetTiling()
        setTilingへの呼出しで指定される、以前のタイル・グリッド・パラメータをすべて削除します。

        デフォルト実装では、インスタンス変数tileWidthtileHeighttileGridXOffsettileGridYOffset0に設定します。

        例外:
        UnsupportedOperationException - プラグインがタイリングをサポートしない場合。
        IllegalStateException - タイリング・モードがMODE_EXPLICITでない場合。
        関連項目:
        setTiling(int, int, int, int)
      • getTileWidth

        public int getTileWidth()
        イメージが出力ストリームに書き込まれるとき、イメージ内の各タイルの幅を返します。 タイリング・パラメータが設定されていない場合、IllegalStateExceptionがスローされます。
        戻り値:
        符号化に使用されるタイルの幅
        例外:
        UnsupportedOperationException - プラグインがタイリングをサポートしない場合。
        IllegalStateException - タイリング・モードがMODE_EXPLICITでない場合。
        IllegalStateException - タイリング・パラメータが設定されていない場合。
        関連項目:
        setTiling(int, int, int, int), getTileHeight()
      • getTileHeight

        public int getTileHeight()
        イメージが出力ストリームに書き込まれるとき、イメージ内の各タイルの高さを返します。 タイリング・パラメータが設定されていない場合、IllegalStateExceptionがスローされます。
        戻り値:
        符号化に使用されるタイルの高さ
        例外:
        UnsupportedOperationException - プラグインがタイリングをサポートしない場合。
        IllegalStateException - タイリング・モードがMODE_EXPLICITでない場合。
        IllegalStateException - タイリング・パラメータが設定されていない場合。
        関連項目:
        setTiling(int, int, int, int), getTileWidth()
      • getTileGridXOffset

        public int getTileGridXOffset()
        イメージが出力ストリームに書き込まれるとき、イメージの水平タイル・グリッド座標を返します。 タイリング・パラメータが設定されていない場合、IllegalStateExceptionがスローされます。
        戻り値:
        符号化に使用されるタイル・グリッドX座標。
        例外:
        UnsupportedOperationException - プラグインがタイリングをサポートしない場合。
        IllegalStateException - タイリング・モードがMODE_EXPLICITでない場合。
        IllegalStateException - タイリング・パラメータが設定されていない場合。
        関連項目:
        setTiling(int, int, int, int), getTileGridYOffset()
      • getTileGridYOffset

        public int getTileGridYOffset()
        イメージが出力ストリームに書き込まれるとき、イメージの垂直タイル・グリッド座標を返します。 タイリング・パラメータが設定されていない場合、IllegalStateExceptionがスローされます。
        戻り値:
        符号化に使用されるタイル・グリッドY座標。
        例外:
        UnsupportedOperationException - プラグインがタイリングをサポートしない場合。
        IllegalStateException - タイリング・モードがMODE_EXPLICITでない場合。
        IllegalStateException - タイリング・パラメータが設定されていない場合。
        関連項目:
        setTiling(int, int, int, int), getTileGridXOffset()
      • canWriteProgressive

        public boolean canWriteProgressive()
        品質を段階的に向上させる一連のパスとして、書込み側が出力イメージを書き出すことができる場合にtrueを返します。
        戻り値:
        書込み側がプログレッシブ・エンコーディングをサポートする場合はtrue
        関連項目:
        setProgressiveMode(int), getProgressiveMode()
      • setProgressiveMode

        public void setProgressiveMode​(int mode)
        品質を向上させる一連のスキャンがストリームに含まれるようなプログレッシブ・モードで、書込み側がイメージを書き出すことを指定します。 プログレッシブ・エンコーディングがサポートされていない場合、UnsupportedOperationExceptionがスローされます。

        モード引数は、プログレッション・パラメータの選択方法を指定し、MODE_DISABLEDMODE_COPY_FROM_METADATAMODE_DEFAULTのどちらかである必要があります。 それ以外の場合はIllegalArgumentExceptionがスローされます。

        モードは、次のように解釈されます。

        • MODE_DISABLED - プログレッションなし。 プログレッションをオフに設定する場合に使用します。
        • MODE_COPY_FROM_METADATA - 出力イメージは、書込み側に渡されたメタデータ・オブジェクト内の任意のプログレッション・パラメータを使用します。
        • MODE_DEFAULT - イメージは、書込み側で選択したパラメータで、段階的に書き込まれます。

        デフォルトはMODE_COPY_FROM_METADATAです。

        パラメータ:
        mode - 出力ストリーム内でプログレッションを設定するためのモード。
        例外:
        UnsupportedOperationException - 書込み側がプログレッシブ・エンコーディングをサポートしない場合。
        IllegalArgumentException - modeが上記のモードのいずれでもない場合。
        関連項目:
        getProgressiveMode()
      • getProgressiveMode

        public int getProgressiveMode()
        プログレッシブ方式でストリームを書き込むための、現在のモードを返します。
        戻り値:
        プログレッシブ・エンコーディングのための現在のモード。
        例外:
        UnsupportedOperationException - 書込み側がプログレッシブ・エンコーディングをサポートしない場合。
        関連項目:
        setProgressiveMode(int)
      • canWriteCompressed

        public boolean canWriteCompressed()
        この書込み側が圧縮をサポートする場合、trueを返します。
        戻り値:
        書込み側が圧縮をサポートする場合true
      • setCompressionMode

        public void setCompressionMode​(int mode)
        圧縮を実行するかどうかを指定し、実行する場合は、圧縮パラメータの指定方法を決定します。 mode引数は、次のように解釈される4つのモードのうちの1つである必要があります。
        • MODE_DISABLED - モデルがMODE_DISABLEDに設定されると、圧縮方式または圧縮パラメータを照会または変更するメソッドはIllegalStateExceptionをスローします(通常、このプラグインで圧縮がサポートされる場合)。 JPEGなどの一部の書込み側では、通常、圧縮解除された出力は提供されません。 この場合、モードをMODE_DISABLEDに設定しようとするとUnsupportedOperationExceptionがスローされ、モードは変更されません。
        • MODE_EXPLICIT - このImageWriteParamで指定される圧縮方式と品質設定を使用して圧縮します。 以前に設定された圧縮パラメータはすべて破棄されます。
        • MODE_COPY_FROM_METADATA - 書込み側に渡されるメタデータ・オブジェクトで指定される任意の圧縮パラメータを使用します。
        • MODE_DEFAULT - デフォルトの圧縮パラメータを使用します。

        デフォルトはMODE_COPY_FROM_METADATAです。

        パラメータ:
        mode - 出力ストリーム内で圧縮を設定するためのモード。
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合、または要求されたモードをサポートしない場合。
        IllegalArgumentException - modeが上記のモードのいずれでもない場合。
        関連項目:
        getCompressionMode()
      • getCompressionMode

        public int getCompressionMode()
        圧縮がサポートされる場合、現在の圧縮モードを返します。
        戻り値:
        現在の圧縮モード。
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        関連項目:
        setCompressionMode(int)
      • getCompressionTypes

        public String[] getCompressionTypes()
        使用可能な圧縮方式のリストを配列またはStringとして返し、これらのインタフェースを使用して圧縮方式を選択できない場合にnullを返します。 返される配列はコピーです。

        書込み側が、規定の圧縮方式を1つだけ提供する場合、圧縮方式を指定する必要はありません。 圧縮方式を指定する必要があるのは、ユーザーが異なるスキーム間で意味のある選択ができる場合だけです。

        デフォルト実装では、圧縮がサポートされているかを調べ、実装されていない場合はUnsupportedOperationExceptionをスローします。 実装されている場合は、それがnull以外の場合はcompressionTypesインスタンス変数のクローンを返し、それ以外の場合はnullを返します。

        戻り値:
        使用可能な圧縮方式で、ローカライズされていない名前を含むStringの配列、またはnull
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
      • setCompressionType

        public void setCompressionType​(String compressionType)
        getCompressionTypesで示される値の1つに圧縮方式を設定します。 nullの値が渡される場合、以前の設定はすべて削除されます。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、getCompressionTypesを呼び出し、compressionTypeが正規の値の1つであるかを調べます。 正規の値の場合、compressionTypeインスタンス変数が設定されます。 compressionTypenullの場合、インスタンス変数はチェックを実行せずに設定されます。

        パラメータ:
        compressionType - getCompressionTypesが返したStringの1つ、または以前の設定をすべて削除するためのnull
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        UnsupportedOperationException - 設定可能な圧縮方式がない場合。
        IllegalArgumentException - compressionTypenullではないが、getCompressionTypesによって返された値の1つではない場合。
        関連項目:
        getCompressionTypes(), getCompressionType(), unsetCompression()
      • getCompressionType

        public String getCompressionType()
        現在設定された圧縮方式を返すか、何も設定されていない場合はnullを返します。 方式は、getCompressionTypesが返した中からStringとして返されます。 圧縮方式が設定されていない場合、nullを返します。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、compressionTypeインスタンス変数の値を返します。

        戻り値:
        現在の圧縮方式としてString、方式が設定されていない場合はnull
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        関連項目:
        setCompressionType(java.lang.String)
      • getLocalizedCompressionTypeName

        public String getLocalizedCompressionTypeName()
        getLocaleが返したLocaleを使用して、現在の圧縮方式のローカライズされた名前を返します。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、compressionTypenull以外のとき、便宜上getCompressionTypeの値が返されます。

        戻り値:
        現在の圧縮方式のローカライズされた名前を含むString
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        IllegalStateException - 圧縮方式が設定されていない場合。
      • isCompressionLossless

        public boolean isCompressionLossless()
        現在の圧縮方式が、損失なし圧縮を提供する場合、trueを返します。 プラグインが規定の圧縮方式を1つだけ提供する場合は、最初にsetCompressionTypeを呼び出さずに、このメソッドを呼び出すことができます。

        複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateExceptionがスローされます。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、getCompressionTypes()nullであるとき、あるいはgetCompressionType()nullでないとき、便宜上trueが返されます。

        戻り値:
        現在の圧縮方式が損失なしの場合はtrue
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        IllegalStateException - 正規の圧縮方式のセットがnullでなく、現在の圧縮方式がnullの場合。
      • setCompressionQuality

        public void setCompressionQuality​(float quality)
        圧縮品質を0から1の間の値に設定します。 デフォルトでは、1つの圧縮品質設定だけがサポートされます。書込み側は、多くの制御ができるImageWriteParamの拡張バージョンを提供できます。 損失のある圧縮スキームでは、圧縮品質はファイル・サイズとイメージ品質との兼ね合いを調整する必要があります。たとえば、JPEGイメージを書き込むときに、量子化表を選択して調整します。 損失のないスキームでは、圧縮品質はファイル・サイズと圧縮実行にかかる時間との兼ね合いを調整するために使用できます。たとえば、PNGイメージを書き込むときに、行フィルタの最適化とZLIB圧縮レベルの設定により調整します。

        一般に、圧縮品質の設定値0.0は「圧縮率の高さを重視」し、設定値1.0は「画質の高さを重視」するものと解釈できます。

        複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateExceptionがスローされます。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、getCompressionTypes()nullを返す、あるいはcompressionTypenullでないとき、compressionQualityインスタンス変数を設定します。

        パラメータ:
        quality - 希望する品質レベルを示す0 から1までのfloat
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        IllegalStateException - 正規の圧縮方式のセットがnullでなく、現在の圧縮方式がnullの場合。
        IllegalArgumentException - quality0 から1の範囲内にない場合。
        関連項目:
        getCompressionQuality()
      • getCompressionQuality

        public float getCompressionQuality()
        現在の圧縮品質設定を返します。

        複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateExceptionがスローされます。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、getCompressionTypes()null、あるいはgetCompressionType()nullでないとき、compressionQualityインスタンス変数の値を返します。

        戻り値:
        現在の圧縮品質設定
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        IllegalStateException - 正規の圧縮方式のセットがnullでなく、現在の圧縮方式がnullの場合。
        関連項目:
        setCompressionQuality(float)
      • getBitRate

        public float getBitRate​(float quality)
        入力イメージ・データの各ビットに対して、指定された品質レベルで出力データのビット数の見積もりを示すfloatを返します。 通常、値は0から1になります。ここで、値が小さいほど圧縮が大きいことを示します。 見積もりが使用できないことを示すために、特別な値-1.0Fが使用されます。

        複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateExceptionがスローされます。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、getCompressionTypes()nullのとき、あるいはgetCompressionType()nullでなく、qualityが範囲内にあるときに、-1.0を返します。

        パラメータ:
        quality - ビット・レートが照会される品質設定。
        戻り値:
        圧縮ビット・レートの見積もり、あるいは見積もりが使用できない場合-1.0F
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        IllegalStateException - 正規の圧縮方式のセットがnullでなく、現在の圧縮方式がnullの場合。
        IllegalArgumentException - quality0 から1の範囲内にない場合。
      • getCompressionQualityDescriptions

        public String[] getCompressionQualityDescriptions()
        圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、getCompressionQualityValuesとともに使用できるStringの配列を返します。 インデックスiを持つStringは、getCompressionQualityValues[i]からgetCompressionQualityValues[i+1]までの品質レベル範囲の説明を提供します。 getCompressionQualityValuesから返された配列の長さは、getCompressionQualityDescriptionsから返された配列の長さより、常に長くなります。

        例として、文字列「Good」、「Better」、「Best」は、範囲[0, .33)[.33, .66)[.66, 1.0]に関連付けることができます。 この場合、getCompressionQualityDescriptions{ "Good", "Better", "Best" }を返し、getCompressionQualityValues{ 0.0F, .33F, .66F, 1.0F }を返します。

        説明が使用できない場合、nullが返されます。 getCompressionQualityValuesからnullが返される場合、このメソッドもnullを返す必要があります。

        説明は、nullでない場合、getLocaleが返したLocaleに対してローカライズする必要があります。

        複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateExceptionがスローされます。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、getCompressionTypes()nullのとき、あるいはgetCompressionType()nullでないときにnullを返します。

        戻り値:
        圧縮品質レベルのローカライズされた説明を含むStringの配列。
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        IllegalStateException - 正規の圧縮方式のセットがnullでなく、現在の圧縮方式がnullの場合。
        関連項目:
        getCompressionQualityValues()
      • getCompressionQualityValues

        public float[] getCompressionQualityValues()
        圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、getCompressionQualityDescriptionsとともに使用できるfloatの配列を返します。 詳細は、getCompressionQualityDescriptionsを参照してください。

        説明が使用できない場合、nullが返されます。 getCompressionQualityDescriptionsからnullが返される場合、このメソッドはnullも返す必要があります。

        複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateExceptionがスローされます。

        デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICITであるかを調べます。 これに当てはまる場合、getCompressionTypes()nullのとき、あるいはgetCompressionType()nullでないときにnullを返します。

        戻り値:
        getCompressionQualityDescriptionsからのStringで記述される、圧縮品質レベル間の範囲を示すfloatの配列。
        例外:
        UnsupportedOperationException - 書込み側が圧縮をサポートしない場合。
        IllegalStateException - 圧縮モードがMODE_EXPLICITでない場合。
        IllegalStateException - 正規の圧縮方式のセットがnullでなく、現在の圧縮方式がnullの場合。
        関連項目:
        getCompressionQualityDescriptions()