- java.lang.Object
-
- javax.imageio.IIOParam
-
- javax.imageio.ImageReadParam
-
- javax.imageio.plugins.jpeg.JPEGImageReadParam
-
public class JPEGImageReadParam extends ImageReadParam
このクラスは、組み込みJPEGリーダー・プラグインを使用する場合に、JPEGの数量化表およびハフマン表を設定する機能を追加します。 このクラスのインスタンスは、組み込みJPEGImageReader
のgetDefaultImageReadParam
メソッドから返されます。これを追加する唯一の目的は、表の指定を、省略されたストリームのデコードで使用できるようにすることです。 組み込みJPEGリーダーは、省略されていないストリームをデコードできる通常の
ImageReadParam
も受け入れます。省略されたストリームの表は通常、表だけを含む別の省略されたストリームを最初に読み込むことにより取得されますが、アプリケーションによっては表が前もって固定されています。 このクラスにより、表をクライアント・コードから直接指定できるようになります。 表がストリームまたは
JPEGImageReadParam
で指定されていない場合、ストリームは「標準の」視覚的に損失のない表を使用するように想定されています。 デフォルト表の詳細は、JPEGQTable
およびJPEGHuffmanTable
を参照してください。組み込みJPEGリーダーの
getDefaultReadParam
メソッドから返されるデフォルトのJPEGImageReadParam
には表が格納されていません。 デフォルトの表は、表クラスJPEGQTable
およびJPEGHuffmanTable
から取得できます。ストリームに表が格納されている場合、
JPEGImageReadParam
で指定された表は無視されます。 さらに、ストリーム内の最初のイメージに表が格納されていて、その後のイメージには格納されていない場合は、最初のイメージで指定された表がすべての省略されたイメージに対して使用されます。 ストリームから表が読み込まれると、その表をオーバーライドできるのは、そのあとに同じストリームから読み込まれる表だけです。 新しい表を指定するには、リーダーのsetInput
メソッドを呼び出してストリームを変更する必要があります。このクラスには、ストリームで検出された表を取得する手段はありません。 これらのテーブルは、リーダーから返されるIIOMetadataオブジェクトを参照してストリームから抽出することができます。
組み込みJPEGプラグインの操作の詳細については、「JPEGメタデータ形式の仕様と使用法に関するノート」を参照してください。
-
-
フィールドのサマリー
-
クラス javax.imageio.ImageReadParamで宣言されたフィールド
canSetSourceRenderSize, destination, destinationBands, minProgressivePass, numProgressivePasses, sourceRenderSize
-
クラス javax.imageio.IIOParamで宣言されたフィールド
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 JPEGImageReadParam()
JPEGImageReadParam
を構築します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 boolean
areTablesSet()
現在表が設定されている場合はtrue
を返します。JPEGHuffmanTable[]
getACHuffmanTables()
setDecodeTables
への直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。JPEGHuffmanTable[]
getDCHuffmanTables()
setDecodeTables
への直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。JPEGQTable[]
getQTables()
setDecodeTables
への直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。void
setDecodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
省略されたストリームのデコードで使用するために数量化表およびハフマン表を設定します。void
unsetDecodeTables()
現在設定されている数量化表およびハフマン表を削除します。-
クラス javax.imageio.ImageReadParamで宣言されたメソッド
canSetSourceRenderSize, getDestination, getDestinationBands, getSourceMaxProgressivePass, getSourceMinProgressivePass, getSourceNumProgressivePasses, getSourceRenderSize, setDestination, setDestinationBands, setSourceProgressivePasses, setSourceRenderSize
-
クラス javax.imageio.IIOParamで宣言されたメソッド
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
-
-
-
メソッドの詳細
-
areTablesSet
public boolean areTablesSet()
現在表が設定されている場合はtrue
を返します。- 戻り値:
- 表が存在する場合は
true
。
-
setDecodeTables
public void setDecodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
省略されたストリームのデコードで使用するために数量化表およびハフマン表を設定します。 各タイプの表は最大で4つです。 ストリームで表が検出されると、これらの表は無視されます。 引数はすべてnull
以外である必要があります。 ハフマン表の2つの配列の要素数は同じである必要があります。 ストリームのフレームおよびスキャン・ヘッダーの表指示子は、これらの配列のインデックスと同等であると想定されます。 引数配列は、このメソッドによりコピーされます。- パラメータ:
qTables
- 数量化表オブジェクトの配列。DCHuffmanTables
- ハフマン表オブジェクトの配列。ACHuffmanTables
- ハフマン表オブジェクトの配列。- 例外:
IllegalArgumentException
- いずれかの引数がnull
であるか、4つより多くの要素を持つ場合、またはDC表とAC表の数が異なる場合。- 関連項目:
unsetDecodeTables()
-
unsetDecodeTables
public void unsetDecodeTables()
現在設定されている数量化表およびハフマン表を削除します。
-
getQTables
public JPEGQTable[] getQTables()
setDecodeTables
への直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。- 戻り値:
JPEGQTable
オブジェクトの配列、またはnull
。- 関連項目:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
getDCHuffmanTables
public JPEGHuffmanTable[] getDCHuffmanTables()
setDecodeTables
への直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。- 戻り値:
JPEGHuffmanTable
オブジェクトの配列、またはnull
。- 関連項目:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
getACHuffmanTables
public JPEGHuffmanTable[] getACHuffmanTables()
setDecodeTables
への直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull
を返します。- 戻り値:
JPEGHuffmanTable
オブジェクトの配列、またはnull
。- 関連項目:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
-