com.sun.image.codec.jpeg
インタフェース JPEGDecodeParam

すべてのスーパーインタフェース:
Cloneable
既知のサブインタフェースの一覧:
JPEGEncodeParam

public interface JPEGDecodeParam
extends Cloneable

JPEGDecodeParam は、JPEG データストリームの復号化の制御に必要なテーブルおよびオプションをカプセル化します。パラメータは、符号化用にアプリケーションによって明示的に設定されるか、または復号化用に JPEG ヘッダから読み取られるかのどちらかです。省略されたデータストリームの復号化の場合は、アプリケーションは、値の一部またはすべてをアプリケーション自体で設定しなければならない場合があります。

BufferedImage の操作を行う場合は (JPEGImageDecoder.decodeAsBufferedImage())、codec は JPEG COLOR_ID に対応した適切な ColorModel を生成しようとしますが、これが常に可能だとは限りません。マッピングの例を以下に示します。サポートされていない変換が必要な場合、または未知の符号化された COLOR_ID が使われている場合、ユーザは Raster としてデータを要求し、独自に変換する必要があります。ラスタに復号化する場合は (JPEGImageDecoder.decodeAsRaster())、ColorSpace の調整は行われません。 注: ここに記述されているカラー ID は、単純な列挙値で、JPEG codec によるデータ処理に影響を与えます。JPEG 圧縮は、定義上色を区別しません。これらの値は、JPEG データの圧縮伸長の際のヒントとして使われます。特に重要になるのがバッファリングされた画像を復号化する際の YCbCr から sRGB へのデフォルト変換です。

注: JPEG 自体は色を区別しないため、色の忠実性は保証されません。この問題は、JPEG データストリームに ICC プロファイルが特別なマーカとして含められることによって、近い将来に修正される予定です。 以下は、行われる変換の例です。これは、許可されている変換の種類を示すにすぎません。このリストは将来変更される可能性があるので、これらの対応を前提とするのではなく、スローされる ImageFormatExceptions、および返される BufferedImage に関連付けられた実際の ColorModel を確認することを強くお勧めします。

復号化:

JPEG (符号化された) カラー ID   BufferedImage ColorSpace
=======================         ========================
COLOR_ID_UNKNOWN                ** 無効 **
COLOR_ID_GRAY                   CS_GRAY
COLOR_ID_RGB                    CS_sRGB
COLOR_ID_YCbCr                  CS_sRGB
COLOR_ID_CMYK                   ** 無効 **
COLOR_ID_PYCC                   CS_PYCC
COLOR_ID_RGBA                   CS_sRGB (alpha)
COLOR_ID_YCbCrA                 CS_sRGB (alpha)
COLOR_ID_RGBA_INVERTED          ** 無効 **
COLOR_ID_YCbCrA_INVERTED        ** 無効 **
COLOR_ID_PYCCA                  CS_PYCC (alpha)
COLOR_ID_YCCK                   ** 無効 **
ユーザがより細かく変換を制御する必要がある場合は、Raster としてデータを要求し、独自にイメージの変換を処理しなければなりません。

JFIF ファイルを復号化する場合は、符号化された COLOR_ID は、COLOR_ID_UNKNOWN、COLOR_ID_GRAY、COLOR_ID_RGB、COLOR_ID_YCbCr、COLOR_ID_CMYK、または COLOR_ID_YCCK のうちのどれかです。

com.sun.image.codec.jpeg パッケージ内のクラスは、コア Java API の一部ではありません。これらは、Sun の JDK および JRE 配布物の一部です。ほかのライセンス保有者がこれらのクラスを配布する可能性はあります。ただし、開発者は、これらのクラスが Sun 以外の実装で利用できると想定して作業することはできません。将来的には、同等の機能がコア API または標準の拡張機能で利用できるようになる予定です。


フィールドの概要
static int APP0_MARKER
          APP0 マーカ - JFIF 情報を表します。
static int APP1_MARKER
          APP1 マーカを表します。
static int APP2_MARKER
          APP2 マーカを表します。
static int APP3_MARKER
          APP3 マーカを表します。
static int APP4_MARKER
          APP4 マーカを表します。
static int APP5_MARKER
          APP5 マーカを表します。
static int APP6_MARKER
          APP6 マーカを表します。
static int APP7_MARKER
          APP7 マーカを表します。
static int APP8_MARKER
          APP8 マーカを表します。
static int APP9_MARKER
          APP9 マーカを表します。
static int APPA_MARKER
          APPA マーカを表します。
static int APPB_MARKER
          APPB マーカを表します。
static int APPC_MARKER
          APPC マーカを表します。
static int APPD_MARKER
          APPD マーカを表します。
static int APPE_MARKER
          APPE マーカ - Adobe 情報を表します。
static int APPF_MARKER
          APPF マーカを表します。
static int COLOR_ID_CMYK
          CMYK を表します。
static int COLOR_ID_GRAY
          モノクロを表します。
static int COLOR_ID_PYCC
          PhotoYCC を表します。
static int COLOR_ID_PYCCA
          PhotoYCC-Alpha を表します。
static int COLOR_ID_RGB
          赤、緑、青を表します。
static int COLOR_ID_RGBA
          RGB-Alpha を表します。
static int COLOR_ID_RGBA_INVERTED
          R、G、B を反転した RGB-Alpha を表します。
static int COLOR_ID_UNKNOWN
          未知または未定義のカラー ID を表します。
static int COLOR_ID_YCbCr
          YCbCr を表します。
static int COLOR_ID_YCbCrA
          YCbCr-Alpha を表します。
static int COLOR_ID_YCbCrA_INVERTED
          Y、Cb、Cr を反転した YCbCr-Alpha を表します。
static int COLOR_ID_YCCK
          YCbCrK を表します。
static int COMMENT_MARKER
          Adobe マーカは Adobe マーカの存在または必要性を示します。
static int DENSITY_UNIT_ASPECT_RATIO
          単純にピクセルの縦横比を示す X と Y のセットを表します。
static int DENSITY_UNIT_DOTS_CM
          ピクセル密度はセンチメートルあたりのピクセル数を表します。
static int DENSITY_UNIT_DOTS_INCH
          ピクセル密度はインチあたりのピクセル数を表します。
static int NUM_COLOR_ID
          定義されているカラー ID 数を表します。
static int NUM_DENSITY_UNIT
          DENSITY_UNIT として知られている最大値を表します。
static int NUM_TABLES
          利用可能な Huffman テーブルおよび量子化テーブルの数を表します。
 
メソッドの概要
 Object clone()
           
 int getACHuffmanComponentMapping(int component)
          特定のコンポーネントに対して使われる AC Huffman テーブルの番号を取得します。
 JPEGHuffmanTable getACHuffmanTable(int tableNum)
          要求された AC Huffman コーディングテーブルを返します。
 JPEGHuffmanTable getACHuffmanTableForComponent(int component)
          要求されたコンポーネントに対する AC Huffman コーディングテーブルを返します。
 int getDCHuffmanComponentMapping(int component)
          特定のコンポーネントに対して使われる DC Huffman テーブルの番号を取得します。
 JPEGHuffmanTable getDCHuffmanTable(int tableNum)
          要求された DC Huffman コーディングテーブルを返します。
 JPEGHuffmanTable getDCHuffmanTableForComponent(int component)
          要求されたコンポーネントに対する DC Huffman コーディングテーブルを返します。
 int getDensityUnit()
          ピクセルサイズセット用のコードを取得します。
 int getEncodedColorID()
          JPEG で符号化されたカラー ID を返します。
 int getHeight()
          イメージの高さを取得します。
 int getHorizontalSubsampling(int component)
          要求されたコンポーネントに対する水平方向のサブサンプル因数を返します。
 boolean getMarker(int marker)
          Parameter オブジェクト内にマーカのインスタンスが 1 つ以上ある場合に、true を返します。
 byte[][] getMarkerData(int marker)
          Parameter オブジェクト内の要求されたマーカに関連付けられた byte[][] を返します。
 int getNumComponents()
          現在の符号化 COLOR_ID に対するコンポーネントの数を返します。
 JPEGQTable getQTable(int tableNum)
          係数量子化テーブルを返します。
 int getQTableComponentMapping(int component)
          特定のコンポーネントに対して使われる数値化テーブルの番号を取得します。
 JPEGQTable getQTableForComponent(int component)
          要求されたコンポーネントに対する量子化テーブルを返します。
 int getRestartInterval()
          再起動マーカごとに MCU を取得します。
 int getVerticalSubsampling(int component)
          要求されたコンポーネントに対する垂直方向のサブサンプル因数を返します。
 int getWidth()
          イメージ幅を取得します。
 int getXDensity()
          水平方向のピクセルの密度を取得します。
 int getYDensity()
          垂直方向のピクセルの密度を取得します。
 boolean isImageInfoValid()
          ParamBlock 内のイメージ情報が現在有効な場合は、true を返します。
 boolean isTableInfoValid()
          ParamBlock 内のテーブルが現在有効な場合は、true を返します。
 

フィールドの詳細

COLOR_ID_UNKNOWN

public static final int COLOR_ID_UNKNOWN
未知または未定義のカラー ID を表します。

COLOR_ID_GRAY

public static final int COLOR_ID_GRAY
モノクロを表します。

COLOR_ID_RGB

public static final int COLOR_ID_RGB
赤、緑、青を表します。

COLOR_ID_YCbCr

public static final int COLOR_ID_YCbCr
YCbCr を表します。

COLOR_ID_CMYK

public static final int COLOR_ID_CMYK
CMYK を表します。

COLOR_ID_PYCC

public static final int COLOR_ID_PYCC
PhotoYCC を表します。

COLOR_ID_RGBA

public static final int COLOR_ID_RGBA
RGB-Alpha を表します。

COLOR_ID_YCbCrA

public static final int COLOR_ID_YCbCrA
YCbCr-Alpha を表します。

COLOR_ID_RGBA_INVERTED

public static final int COLOR_ID_RGBA_INVERTED
R、G、B を反転した RGB-Alpha を表します。

COLOR_ID_YCbCrA_INVERTED

public static final int COLOR_ID_YCbCrA_INVERTED
Y、Cb、Cr を反転した YCbCr-Alpha を表します。

COLOR_ID_PYCCA

public static final int COLOR_ID_PYCCA
PhotoYCC-Alpha を表します。

COLOR_ID_YCCK

public static final int COLOR_ID_YCCK
YCbCrK を表します。

NUM_COLOR_ID

public static final int NUM_COLOR_ID
定義されているカラー ID 数を表します。

NUM_TABLES

public static final int NUM_TABLES
利用可能な Huffman テーブルおよび量子化テーブルの数を表します。

DENSITY_UNIT_ASPECT_RATIO

public static final int DENSITY_UNIT_ASPECT_RATIO
単純にピクセルの縦横比を示す X と Y のセットを表します。

DENSITY_UNIT_DOTS_INCH

public static final int DENSITY_UNIT_DOTS_INCH
ピクセル密度はインチあたりのピクセル数を表します。

DENSITY_UNIT_DOTS_CM

public static final int DENSITY_UNIT_DOTS_CM
ピクセル密度はセンチメートルあたりのピクセル数を表します。

NUM_DENSITY_UNIT

public static final int NUM_DENSITY_UNIT
DENSITY_UNIT として知られている最大値を表します。

APP0_MARKER

public static final int APP0_MARKER
APP0 マーカ - JFIF 情報を表します。

APP1_MARKER

public static final int APP1_MARKER
APP1 マーカを表します。

APP2_MARKER

public static final int APP2_MARKER
APP2 マーカを表します。

APP3_MARKER

public static final int APP3_MARKER
APP3 マーカを表します。

APP4_MARKER

public static final int APP4_MARKER
APP4 マーカを表します。

APP5_MARKER

public static final int APP5_MARKER
APP5 マーカを表します。

APP6_MARKER

public static final int APP6_MARKER
APP6 マーカを表します。

APP7_MARKER

public static final int APP7_MARKER
APP7 マーカを表します。

APP8_MARKER

public static final int APP8_MARKER
APP8 マーカを表します。

APP9_MARKER

public static final int APP9_MARKER
APP9 マーカを表します。

APPA_MARKER

public static final int APPA_MARKER
APPA マーカを表します。

APPB_MARKER

public static final int APPB_MARKER
APPB マーカを表します。

APPC_MARKER

public static final int APPC_MARKER
APPC マーカを表します。

APPD_MARKER

public static final int APPD_MARKER
APPD マーカを表します。

APPE_MARKER

public static final int APPE_MARKER
APPE マーカ - Adobe 情報を表します。

APPF_MARKER

public static final int APPF_MARKER
APPF マーカを表します。

COMMENT_MARKER

public static final int COMMENT_MARKER
Adobe マーカは Adobe マーカの存在または必要性を示します。
メソッドの詳細

clone

public Object clone()
オーバーライド:
クラス Object 内の clone

getWidth

public int getWidth()
イメージ幅を取得します。
戻り値:
int ピクセルで表したイメージデータの幅

getHeight

public int getHeight()
イメージの高さを取得します。
戻り値:
イメージデータの高さを示すピクセル値

getHorizontalSubsampling

public int getHorizontalSubsampling(int component)
要求されたコンポーネントに対する水平方向のサブサンプル因数を返します。サブサンプル因数は、個々の出力ピクセルの生成に必要な入力ピクセル数です。これは、JPEG が個々の出力ピクセルを生成する方法とは異なります。分数のサブサンプル因数は使うことができないので、これは、JPEG 標準がこの量を定義する方法とは異なります。
パラメータ:
component - サブサンプル用因子を返す符号化されたイメージのコンポーネント
戻り値:
サブサンプル因子

getVerticalSubsampling

public int getVerticalSubsampling(int component)
要求されたコンポーネントに対する垂直方向のサブサンプル因数を返します。サブサンプル因数は、個々の出力ピクセルの生成に必要な入力ピクセル数です。これは、JPEG が個々の出力ピクセルを生成する方法とは異なります。分数のサブサンプル因数は使うことができないので、これは、JPEG 標準がこの量を定義する方法とは異なります。
パラメータ:
component - サブサンプル用因子を返す符号化されたイメージのコンポーネント
戻り値:
サブサンプル因子

getQTable

public JPEGQTable getQTable(int tableNum)
係数量子化テーブルを返します。テーブルが定義されていない場合は、null を返します。tableNum は、0 〜 3 までの範囲の値である必要があります。
パラメータ:
tableNum - 返されるテーブルのインデックス
戻り値:
インデックス tableNum に格納された量子化テーブル

getQTableForComponent

public JPEGQTable getQTableForComponent(int component)
要求されたコンポーネントに対する量子化テーブルを返します。
パラメータ:
component - 目的のイメージコンポーネント
戻り値:
コンポーネントに関連付けられた量子化テーブル

getDCHuffmanTable

public JPEGHuffmanTable getDCHuffmanTable(int tableNum)
要求された DC Huffman コーディングテーブルを返します。テーブルが定義されていない場合は、null を返します。
パラメータ:
tableNum - 返されるテーブルのインデックス
戻り値:
インデックス tableNum に格納された Huffman テーブル

getDCHuffmanTableForComponent

public JPEGHuffmanTable getDCHuffmanTableForComponent(int component)
要求されたコンポーネントに対する DC Huffman コーディングテーブルを返します。
パラメータ:
component - 目的のイメージコンポーネント
戻り値:
コンポーネントに関連付けられた Huffman テーブル

getACHuffmanTable

public JPEGHuffmanTable getACHuffmanTable(int tableNum)
要求された AC Huffman コーディングテーブルを返します。テーブルが定義されていない場合は、null を返します。
パラメータ:
tableNum - 返されるテーブルのインデックス
戻り値:
インデックス tableNum に格納された Huffman テーブル

getACHuffmanTableForComponent

public JPEGHuffmanTable getACHuffmanTableForComponent(int component)
要求されたコンポーネントに対する AC Huffman コーディングテーブルを返します。
パラメータ:
component - 目的のイメージコンポーネント
戻り値:
コンポーネントに関連付けられた Huffman テーブル

getDCHuffmanComponentMapping

public int getDCHuffmanComponentMapping(int component)
特定のコンポーネントに対して使われる DC Huffman テーブルの番号を取得します。
パラメータ:
component - 目的のコンポーネント
戻り値:
コンポーネントに対する DC Huffman テーブルのテーブル番号

getACHuffmanComponentMapping

public int getACHuffmanComponentMapping(int component)
特定のコンポーネントに対して使われる AC Huffman テーブルの番号を取得します。
パラメータ:
component - 目的のコンポーネント
戻り値:
コンポーネントに対する AC Huffman テーブルのテーブル番号

getQTableComponentMapping

public int getQTableComponentMapping(int component)
特定のコンポーネントに対して使われる数値化テーブルの番号を取得します。
パラメータ:
component - 目的のコンポーネント
戻り値:
コンポーネントに対する量子化テーブルのテーブル番号

isImageInfoValid

public boolean isImageInfoValid()
ParamBlock 内のイメージ情報が現在有効な場合は、true を返します。これは、復号化のためにストリームからイメージデータが読み込まれたかどうか、および符号化時にイメージデータを書き込む必要があるかどうかを示します。

isTableInfoValid

public boolean isTableInfoValid()
ParamBlock 内のテーブルが現在有効な場合は、true を返します。これは、復号化のためにストリームからそのテーブルが読み込まれたかどうかを示します。符号化時には、テーブルをストリームに書き込む必要があるかどうかを示します。

getMarker

public boolean getMarker(int marker)
Parameter オブジェクト内にマーカのインスタンスが 1 つ以上ある場合に、true を返します。符号化の場合は、書き込まれるマーカのインスタンスが 1 つ以上ある場合に、true を返します。
パラメータ:
marker - 目的のマーカ

getMarkerData

public byte[][] getMarkerData(int marker)
Parameter オブジェクト内の要求されたマーカに関連付けられた byte[][] を返します。byte[][] 内の各エントリは、マーカの 1 つのインスタンスに関連付けられたデータです。理論上、各マーカは、ストリーム内に任意の回数出現することが可能です。
パラメータ:
marker - 目的のマーカ
戻り値:
このマーカに対する byte[][]。ない場合は、null

getEncodedColorID

public int getEncodedColorID()
JPEG で符号化されたカラー ID を返します。通常、これは Raster に復号化する場合にだけ使われます。Raster への復号化時には、カラー変換は実行されません。
戻り値:
JPEG で符号化されたデータのカラー ID の値

getNumComponents

public int getNumComponents()
現在の符号化 COLOR_ID に対するコンポーネントの数を返します。
戻り値:
コンポーネントの数

getRestartInterval

public int getRestartInterval()
再起動マーカごとに MCU を取得します。
戻り値:
再起動マーカの間の MCU の数

getDensityUnit

public int getDensityUnit()
ピクセルサイズセット用のコードを取得します。この値は、APP0 マーカからコピーされます。これは、JPEG codec では使われません。APP0 マーカが存在しない場合は、この値に頼ることはできません。
戻り値:
密度の単位を示す値で、DENSITY_UNIT_* 定数の 1 つ

getXDensity

public int getXDensity()
水平方向のピクセルの密度を取得します。この値は、APP0 マーカからコピーされます。これは、JPEG コードでは使われません。APP0 マーカが存在しない場合は、この値に頼ることはできません。
戻り値:
水平方向のピクセルの密度 (getDensityUnit() で記述された単位)
関連項目:
JPEGDecodeParam.getDensityUnit

getYDensity

public int getYDensity()
垂直方向のピクセルの密度を取得します。この値は、APP0 マーカにコピーされます。これは、JPEG コードでは使われません。APP0 マーカが存在しない場合は、この値に頼ることはできません。
戻り値:
垂直方向のピクセルの密度 (getDensityUnit() で記述された単位)
関連項目:
JPEGDecodeParam.getDensityUnit


バグや機能要求の報告
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1999 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.