クラスJPEGImageReadParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageReadParam
javax.imageio.plugins.jpeg.JPEGImageReadParam

public class JPEGImageReadParam extends ImageReadParam
このクラスは、組み込みJPEGリーダー・プラグインを使用する場合に、JPEGの数量化表およびハフマン表を設定する機能を追加します。 このクラスのインスタンスは、組み込みJPEG ImageReadergetDefaultImageReadParamメソッドから返されます。

これを追加する唯一の目的は、表の指定を、省略されたストリームのデコードで使用できるようにすることです。 組み込みJPEGリーダーは、省略されていないストリームをデコードできる通常のImageReadParamも受け入れます。

省略されたストリームの表は通常、表だけを含む別の省略されたストリームを最初に読み込むことにより取得されますが、アプリケーションによっては表が前もって固定されています。 このクラスにより、表をクライアント・コードから直接指定できるようになります。 表がストリームまたはJPEGImageReadParamで指定されていない場合、ストリームは「標準の」視覚的に損失のない表を使用するように想定されています。 デフォルト表の詳細は、JPEGQTableおよびJPEGHuffmanTableを参照してください。

組み込みJPEGリーダーのgetDefaultReadParamメソッドから返されるデフォルトのJPEGImageReadParamには表が格納されていません。 デフォルトの表は、表クラスJPEGQTableおよびJPEGHuffmanTableから取得できます。

ストリームに表が格納されている場合、JPEGImageReadParamで指定された表は無視されます。 さらに、ストリーム内の最初のイメージに表が格納されていて、その後のイメージには格納されていない場合は、最初のイメージで指定された表がすべての省略されたイメージに対して使用されます。 ストリームから表が読み込まれると、その表をオーバーライドできるのは、そのあとに同じストリームから読み込まれる表だけです。 新しい表を指定するには、リーダーのsetInputメソッドを呼び出してストリームを変更する必要があります。

このクラスには、ストリームで検出された表を取得する手段はありません。 これらのテーブルは、リーダーから返されるIIOMetadataオブジェクトを参照してストリームから抽出することができます。

組み込みJPEGプラグインの操作の詳細については、「JPEGメタデータ形式の仕様と使用法に関するノート」を参照してください。

  • コンストラクタの詳細

    • JPEGImageReadParam

      public JPEGImageReadParam()
      JPEGImageReadParamを構築します。
  • メソッドの詳細

    • 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

      public void unsetDecodeTables()
      現在設定されている数量化表およびハフマン表を削除します。
      関連項目:
    • getQTables

      public JPEGQTable[] getQTables()
      setDecodeTablesへの直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
      戻り値:
      JPEGQTableオブジェクトの配列、またはnull
      関連項目:
    • getDCHuffmanTables

      public JPEGHuffmanTable[] getDCHuffmanTables()
      setDecodeTablesへの直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
      戻り値:
      JPEGHuffmanTableオブジェクトの配列、またはnull
      関連項目:
    • getACHuffmanTables

      public JPEGHuffmanTable[] getACHuffmanTables()
      setDecodeTablesへの直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnullを返します。
      戻り値:
      JPEGHuffmanTableオブジェクトの配列、またはnull
      関連項目: