- 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.IIOParamで宣言されたフィールド
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
クラス 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
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 JPEGImageWriteParam(Locale locale)JPEGImageWriteParamを構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 booleanareTablesSet()現在表が設定されている場合はtrueを返します。JPEGHuffmanTable[]getACHuffmanTables()setEncodeTablesへの直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。JPEGHuffmanTable[]getDCHuffmanTables()setEncodeTablesへの直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。booleangetOptimizeHuffmanTables()setOptimizeHuffmanTablesの直前の呼出しに渡された値を返します。setOptimizeHuffmanTablesが呼び出されなかった場合は、falseを返します。JPEGQTable[]getQTables()setEncodeTablesへの直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。booleanisCompressionLossless()JPEGプラグインは損失の発生する圧縮だけをサポートするので、falseを返します。voidsetEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)省略されたストリームのエンコードで使用するために数量化表およびハフマン表を設定します。voidsetOptimizeHuffmanTables(boolean optimize)書込み処理の一部として最適化されたイメージ用ハフマン表を生成するようにライターに通知します。voidunsetCompression()以前のすべての圧縮品質設定を削除します。voidunsetEncodeTables()現在設定されている数量化表およびハフマン表を削除します。-
クラス javax.imageio.IIOParamで宣言されたメソッド
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
クラス 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
-
-
-
-
コンストラクタの詳細
-
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)
-
-