- 直系の既知のサブクラス:
BMPImageWriteParam
,JPEGImageWriteParam
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
この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 int
今後の書込み機能を使用可能にするために、setTilingMode
、setProgressiveMode
、またはsetCompressionMode
のようなメソッドに渡すことのできる定数値です。static int
今後の書込み機能を使用可能にするために、setTilingMode
、setProgressiveMode
、setCompressionMode
のようなメソッドに渡すことのできる定数値です。static int
今後の書込み機能を使用不可にするために、setTilingMode
、setProgressiveMode
、setCompressionMode
のようなメソッドに渡すことのできる定数値です。static 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
です。クラス javax.imageio.IIOParamで宣言されたフィールド
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
コンストラクタのサマリー
コンストラクタ修飾子コンストラクタ説明protected
空のImageWriteParam
を構築します。ImageWriteParam(Locale locale)
指定されたLocale
を使用するために設定されるImageWriteParam
を構築します。 -
メソッドのサマリー
修飾子と型メソッド説明boolean
書込み側が書込み中に0以外のグリッド座標でタイリングを実行できる場合に、true
を返します。boolean
この書込み側が圧縮をサポートする場合、true
を返します。boolean
品質を段階的に向上させる一連のパスとして、書込み側が出力イメージを書き出すことができる場合にtrue
を返します。boolean
書込み側が書込み中にタイリングを実行できる場合、true
を返します。float
getBitRate(float quality)
入力イメージ・データの各ビットに対して、指定された品質レベルで出力データのビット数の見積もりを示すfloat
を返します。int
圧縮がサポートされる場合、現在の圧縮モードを返します。float
現在の圧縮品質設定を返します。String[]
圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、getCompressionQualityValues
とともに使用できるString
の配列を返します。float[]
圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、getCompressionQualityDescriptions
とともに使用できるfloat
の配列を返します。現在設定された圧縮方式を返すか、何も設定されていない場合はnull
を返します。String[]
使用可能な圧縮方式のリストを配列またはString
として返し、これらのインタフェースを使用して圧縮方式を選択できない場合にnull
を返します。現在設定されているLocale
を返す、あるいはデフォルトLocale
だけがサポートされている場合null
になります。getLocale
が返したLocale
を使用して、現在の圧縮方式のローカライズされた名前を返します。タイルが出力ファイルまたはストリームでエンコードされるとき、タイルの正規のサイズ範囲を示すDimension
の配列を返します。int
プログレッシブ方式でストリームを書き込むための、現在のモードを返します。int
イメージが出力ストリームに書き込まれるとき、イメージの水平タイル・グリッド座標を返します。int
イメージが出力ストリームに書き込まれるとき、イメージの垂直タイル・グリッド座標を返します。int
イメージが出力ストリームに書き込まれるとき、イメージ内の各タイルの高さを返します。int
イメージが出力ストリームに書き込まれるとき、イメージ内の各タイルの幅を返します。int
タイリングがサポートされている場合、現在のタイリング・モードを返します。boolean
現在の圧縮方式が、損失なし圧縮を提供する場合、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
以前の圧縮方式と品質設定をすべて削除します。void
setTiling
への呼出しで指定される、以前のタイル・グリッド・パラメータをすべて削除します。クラス javax.imageio.IIOParamで宣言されたメソッド
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
フィールド詳細
-
MODE_DISABLED
public static final int MODE_DISABLED今後の書込み機能を使用不可にするために、setTilingMode
、setProgressiveMode
、setCompressionMode
のようなメソッドに渡すことのできる定数値です。 つまり、このモードが設定されている場合、ストリームのタイリング、プログレッシブ・エンコーディング、または圧縮は行われず、該当するアクセス用メソッドはIllegalStateException
をスローします。 -
MODE_DEFAULT
public static final int MODE_DEFAULT今後の書込み機能を使用可能にするために、setTilingMode
、setProgressiveMode
、setCompressionMode
のようなメソッドに渡すことのできる定数値です。 つまり、このモードが使用可能な場合、書込み側がプラグインに依存した方法で内部で選択した実際的なデフォルトに従って、ストリームのタイリング、プログレッシブ・エンコーディング、または圧縮が行われ、該当するアクセス用メソッドはIllegalStateException
をスローします。 -
MODE_EXPLICIT
public static final int MODE_EXPLICIT今後の書込み機能を使用可能にするために、setTilingMode
またはsetCompressionMode
のようなメソッドに渡すことができる定数値です。 つまり、このモードが設定されている場合、このクラス内の対応するset
メソッドが提供し、対応するget
メソッドから取得できる追加情報に従って、ストリームのタイリングまたは圧縮が行われます。 このモードは段階的な出力ではサポートされません。 -
MODE_COPY_FROM_METADATA
public static final int MODE_COPY_FROM_METADATA今後の書込み機能を使用可能にするために、setTilingMode
、setProgressiveMode
、またはsetCompressionMode
のようなメソッドに渡すことのできる定数値です。 つまり、このモードが使用可能な場合、書込み操作に渡されるイメージ・メタデータまたはストリームのコンテンツ、あるいはその両方のコンテンツに基づいて、ストリームのタイリング、プログレッシブ・エンコーディング、または圧縮が行われ、該当するアクセス用メソッドはIllegalStateException
をスローします。これはすべての機能のデフォルト・モードなので、メタデータを含む読込みに続いてメタデータを含む書込みを行うと、可能な限り多くの情報が保存されます。
-
canWriteTiles
protected boolean canWriteTilesこのImageWriteParam
でタイルの幅と高さのパラメータを設定できる場合に、true
となるboolean
です。 デフォルト値はfalse
です。 サブクラスでは、値を手動で設定する必要があります。タイルの書込みをサポートしないサブクラスでは、この値を
false
に設定する必要があります。 -
tilingMode
protected int tilingModeタイリング設定を制御するモードで、4つのMODE_*
値の1つに設定する必要があります。 デフォルトはMODE_COPY_FROM_METADATA
です。タイルの書込みを行わないサブクラスでは、この値を無視できます。
-
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
です。プログレッシブ・エンコーディングをサポートしないサブクラスでは、この値を無視できます。
-
canWriteCompressed
protected boolean canWriteCompressedこの書込み側が、圧縮を使用してイメージを書込みできる場合に、true
となるboolean
です。 デフォルト値はfalse
です。 サブクラスでは、値を手動で設定する必要があります。圧縮をサポートしないサブクラスでは、この値は
false
に設定する必要があります。 -
compressionMode
protected int compressionMode圧縮設定を制御するモードで、4つのMODE_*
値の1つに設定する必要があります。 デフォルトはMODE_COPY_FROM_METADATA
です。圧縮をサポートしないサブクラスでは、この値を無視できます。
-
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
を返す場合、setTiling
がUnsupportedOperationException
をスローします。- 戻り値:
- 書込み側がタイリングをサポートする場合
true
。 - 関連項目:
canOffsetTiles()
,setTiling(int, int, int, int)
-
canOffsetTiles
public boolean canOffsetTiles()書込み側が書込み中に0以外のグリッド座標でタイリングを実行できる場合に、true
を返します。 このメソッドがfalse
を返す場合、グリッド座標の引数がどちらも0でないとき、setTiling
はUnsupportedOperationException
をスローします。canWriteTiles
がfalse
を返す場合、このメソッドもfalse
を返します。- 戻り値:
- 書込み側が0以外のタイル座標をサポートする場合
true
。 - 関連項目:
canWriteTiles()
,setTiling(int, int, int, int)
-
setTilingMode
public void setTilingMode(int mode)イメージを出力ストリーム中にタイリングするか、またタイリングする場合には、タイリング・パラメータの指定方法を指定します。 モードは、次のように解釈されます。MODE_DISABLED
- イメージはタイリングされません。setTiling
はIllegalStateException
をスローします。MODE_DEFAULT
- イメージはデフォルト・パラメータを使用してタイリングされます。setTiling
はIllegalStateException
をスローします。MODE_EXPLICIT
- イメージはsetTiling
メソッドで与えられるパラメータに従ってタイリングされます。 前もって設定されたタイリング・パラメータはすべて破棄されます。MODE_COPY_FROM_METADATA
- イメージは、書込みに渡されるメタデータ・オブジェクトに準拠します。setTiling
はIllegalStateException
をスローします。
- パラメータ:
mode
- タイリングに使用するモード。- 例外:
UnsupportedOperationException
-canWriteTiles
がfalse
を返す場合。IllegalArgumentException
-mode
が上記のモードのいずれでもない場合。- 関連項目:
setTiling(int, int, int, int)
,getTilingMode()
-
getTilingMode
public int getTilingMode()タイリングがサポートされている場合、現在のタイリング・モードを返します。 サポートされていない場合は、UnsupportedOperationException
をスローします。- 戻り値:
- 現在のタイリング・モード。
- 例外:
UnsupportedOperationException
-canWriteTiles
がfalse
を返す場合。- 関連項目:
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)イメージが出力ストリーム内でタイリングされるよう指定します。tileWidth
とtileHeight
パラメータは、ファイル内のタイルの幅と高さを指定します。 タイルの幅または高さがイメージの幅または高さよりも大きい場合、イメージはその範囲内にタイリングされません。canOffsetTiles
がfalse
を返す場合、tileGridXOffset
とtileGridYOffset
パラメータは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
への呼出しで指定される、以前のタイル・グリッド・パラメータをすべて削除します。デフォルト実装では、インスタンス変数
tileWidth
、tileHeight
、tileGridXOffset
、tileGridYOffset
を0
に設定します。- 例外:
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_DISABLED
、MODE_COPY_FROM_METADATA
、MODE_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
インスタンス変数が設定されます。compressionType
がnull
の場合、インスタンス変数はチェックを実行せずに設定されます。- パラメータ:
compressionType
-getCompressionTypes
が返したString
の1つ、または以前の設定をすべて削除するためのnull
。- 例外:
UnsupportedOperationException
- 書込み側が圧縮をサポートしない場合。IllegalStateException
- 圧縮モードがMODE_EXPLICIT
でない場合。UnsupportedOperationException
- 設定可能な圧縮方式がない場合。IllegalArgumentException
-compressionType
がnull
ではないが、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)
-
unsetCompression
public void unsetCompression()以前の圧縮方式と品質設定をすべて削除します。デフォルト実装では、インスタンス変数
compressionType
をnull
に、インスタンス変数compressionQuality
を1.0F
に設定します。- 例外:
UnsupportedOperationException
- プラグインが圧縮をサポートしない場合。IllegalStateException
- 圧縮モードがMODE_EXPLICIT
でない場合。- 関連項目:
setCompressionType(java.lang.String)
,setCompressionQuality(float)
-
getLocalizedCompressionTypeName
public String getLocalizedCompressionTypeName()getLocale
が返したLocale
を使用して、現在の圧縮方式のローカライズされた名前を返します。デフォルト実装では、圧縮がサポートされるか、圧縮モードが
MODE_EXPLICIT
であるかを調べます。 これに当てはまる場合、compressionType
がnull以外
のとき、便宜上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
を返す、あるいはcompressionType
がnull
でないとき、compressionQuality
インスタンス変数を設定します。- パラメータ:
quality
- 希望する品質レベルを示す0
から1
までのfloat
。- 例外:
UnsupportedOperationException
- 書込み側が圧縮をサポートしない場合。IllegalStateException
- 圧縮モードがMODE_EXPLICIT
でない場合。IllegalStateException
- 正規の圧縮方式のセットがnull
でなく、現在の圧縮方式がnull
の場合。IllegalArgumentException
-quality
が0
から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
-quality
が0
から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()
-