- java.lang.Object
-
- javax.imageio.IIOParam
-
- javax.imageio.ImageWriteParam
-
- javax.imageio.plugins.jpeg.JPEGImageWriteParam
-
public class JPEGImageWriteParam extends ImageWriteParam
このクラスは、組み込みJPEGライター・プラグインを使用する場合にJPEGの数量化表およびハフマン表を設定する機能と、イメージ用に最適化されたハフマン表を計算するよう要求する機能を追加します。 このクラスのインスタンスは、組み込みJPEGImageWriter
のgetDefaultImageWriteParam
メソッドから返されます。これらを追加する主な目的は、表の指定を、省略されたストリームのエンコーディングで使用できるようにすることです。 組み込みJPEGライターは、通常の
ImageWriteParam
も受け入れます。この場合、ライターは必要な表を内部的に構築します。どちらの場合も、
ImageWriteParam
の品質の設定には、基本となるライブラリの場合と同じ意味があります。1.00はすべての1の数量化表を、0.75は「標準の」視覚的に損失のない数量化表を、0.00はすべての255の数量化表を意味します。省略されたストリームの表は通常、表だけを含む省略されたストリームを最初に書き込むことにより指定されますが、アプリケーションによっては表が前もって固定されています。 このクラスにより、表をクライアント・コードから直接指定できるようになります。
通常、表はライターに渡された
IIOMetadata
オブジェクトで指定され、これらのオブジェクトに含まれる表はすべてストリームに書き込まれます。 メタデータに表が指定されていない場合は、省略されたストリームが書き込まれます。 メタデータに表が含まれておらず、JPEGImageWriteParam
で表が指定されない場合、省略されたストリームは「標準の」視覚的に損失のない表を使用してエンコードされます。 最初に表をストリームに書き込まないで、省略されたストリームを書き込む必要がある場合は、表の指定にこのクラスが必要です。 このクラスを使用するためには、ライターに渡されたメタデータ・オブジェクトに表を格納しても、ストリーム・メタデータを提供してもいけません。 デフォルト表の詳細は、JPEGQTable
およびJPEGHuffmanTable
を参照してください。ライターの
getDefaultWriteParam
メソッドから返されるデフォルトのJPEGImageWriteParam
には表は格納されていません。 デフォルトの表は、ライターから返されるデフォルトのIIOMetadata
オブジェクトに含まれています。メタデータに表が格納されている場合、
JPEGImageWriteParam
で指定される表は無視されます。 さらに、表のセットが書き込まれると、同じストリームまたは別のストリームへのその後の書込みに対してそれらの表をオーバーライドできるのは、メタデータ内の表だけです。 このクラスを使用して新しい表を指定するためには、ライターのreset
メソッドを呼び出す必要があります。組み込みJPEGプラグインの操作の詳細については、「JPEGメタデータ形式の仕様と使用法に関するノート」を参照してください。
-
-
フィールドのサマリー
-
クラス javax.imageio.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
-
クラス javax.imageio.IIOParamで宣言されたフィールド
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam
を構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 boolean
areTablesSet()
現在表が設定されている場合はtrue
を返します。JPEGHuffmanTable[]
getACHuffmanTables()
setEncodeTables
への直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。JPEGHuffmanTable[]
getDCHuffmanTables()
setEncodeTables
への直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。boolean
getOptimizeHuffmanTables()
setOptimizeHuffmanTables
の直前の呼出しに渡された値を返します。setOptimizeHuffmanTables
が呼び出されなかった場合は、false
を返します。JPEGQTable[]
getQTables()
setEncodeTables
への直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。boolean
isCompressionLossless()
JPEGプラグインは損失の発生する圧縮だけをサポートするので、false
を返します。void
setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
省略されたストリームのエンコードで使用するために数量化表およびハフマン表を設定します。void
setOptimizeHuffmanTables(boolean optimize)
書込み処理の一部として最適化されたイメージ用ハフマン表を生成するようにライターに通知します。void
unsetCompression()
以前のすべての圧縮品質設定を削除します。void
unsetEncodeTables()
現在設定されている数量化表およびハフマン表を削除します。-
クラス javax.imageio.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
-
クラス javax.imageio.IIOParamで宣言されたメソッド
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
-
-
-
コンストラクタの詳細
-
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
でない場合。- 関連項目:
ImageWriteParam.setCompressionType(java.lang.String)
,ImageWriteParam.setCompressionQuality(float)
-
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()
-
unsetEncodeTables
public void unsetEncodeTables()
現在設定されている数量化表およびハフマン表を削除します。
-
getQTables
public JPEGQTable[] getQTables()
setEncodeTables
への直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。- 戻り値:
JPEGQTable
オブジェクトの配列、またはnull
。- 関連項目:
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
getDCHuffmanTables
public JPEGHuffmanTable[] getDCHuffmanTables()
setEncodeTables
への直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。- 戻り値:
JPEGHuffmanTable
オブジェクトの配列、またはnull
。- 関連項目:
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
getACHuffmanTables
public JPEGHuffmanTable[] getACHuffmanTables()
setEncodeTables
への直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。- 戻り値:
JPEGHuffmanTable
オブジェクトの配列、またはnull
。- 関連項目:
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
setOptimizeHuffmanTables
public void setOptimizeHuffmanTables(boolean optimize)
書込み処理の一部として最適化されたイメージ用ハフマン表を生成するようにライターに通知します。 デフォルトはfalse
です。 このフラグがtrue
に設定されている場合は、メタデータで指定されたすべての表をオーバーライドします。 これは、このフラグをtrue
に設定して書き込まれたイメージには常にハフマン表が含まれるということです。- パラメータ:
optimize
- 書込み時に最適化されたハフマン表を生成するかどうかを示すboolean値。- 関連項目:
getOptimizeHuffmanTables()
-
getOptimizeHuffmanTables
public boolean getOptimizeHuffmanTables()
setOptimizeHuffmanTables
の直前の呼出しに渡された値を返します。setOptimizeHuffmanTables
が呼び出されなかった場合は、false
を返します。- 戻り値:
- ライターが最適化されたハフマン表を生成する場合は
true
。 - 関連項目:
setOptimizeHuffmanTables(boolean)
-
-