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

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

public interface JPEGDecodeParam
extends Cloneable

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

BufferedImage の操作を行う場合(@see JPEGImageDecoder.decodeBufferedImage)は 、codec は JPEG COLOR_ID に対応する ColorModel を生成しようとしますが、これが常に可能だとは限りません (マッピング例を以下に示します)。サポートされていない変換が必要な場合や符号化時に未知の COLOR_ID が使われている場合、ユーザは Raster としてデータを要求し、手動で変換する必要があります。ラスタに復号化する場合(@see JPEGImageDecoder.decodeRaster)は、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
          このピクセル密度は、1 センチメートルあたりのピクセル数を表します。
static int DENSITY_UNIT_DOTS_INCH
          このピクセル密度は、1 インチあたりのピクセル数を表します。
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
このピクセル密度は、1 インチあたりのピクセル数を表します。

関連項目:
定数フィールド値

DENSITY_UNIT_DOTS_CM

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

関連項目:
定数フィールド値

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()

getWidth

public int getWidth()
イメージ幅を取得します。

戻り値:
イメージデータの幅を示すピクセル値 (整数)

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 マーカが存在しない場合は、この値に頼ることはできません。

戻り値:
水平方向のピクセル密度 (単位は以下を参照)
関連項目:
JPEGDecodeParam.getDensityUnit.

getYDensity

public int getYDensity()
垂直方向のピクセルの密度を取得します。この値は、APP0 マーカにコピーされます。これは、JPEG コードでは使われません。APP0 マーカが存在しない場合は、この値に頼ることはできません。

戻り値:
垂直方向のピクセル密度 (単位は以下を参照)
関連項目:
JPEGDecodeParam.getDensityUnit.


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