|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--javax.imageio.IIOParam | +--javax.imageio.ImageWriteParam | +--javax.imageio.plugins.jpeg.JPEGImageWriteParam
このクラスは、組み込み JPEG ライタプラグインを使用する場合に JPEG の数量化テーブルおよび ハフマンテーブルを設定する機能と、イメージ用に最適化されたハフマンテーブルを計算するよう要求する機能を追加します。このクラスのインスタンスは、組み込み JPEG ImageWriter
の 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 |
コンストラクタの概要 | |
JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam を構築します。 |
メソッドの概要 | |
boolean |
areTablesSet()
現在テーブルが設定されている場合は true を返します。 |
JPEGHuffmanTable[] |
getACHuffmanTables()
setEncodeTables への直前の呼び出しで設定された AC ハフマンテーブルの配列のコピーを返します。 |
String[] |
getCompressionQualityDescriptions()
圧縮品質レベルの表示または設定のために、ユーザーインタフェースの一部として getCompressionQualityValues と共に使用できる String の配列を返します。 |
float[] |
getCompressionQualityValues()
圧縮品質レベルの表示または設定のためのユーザーインタフェースの一部として、 getCompressionQualityDescriptions と共に使用できる float の配列を返します。 |
JPEGHuffmanTable[] |
getDCHuffmanTables()
setEncodeTables への直前の呼び出しで設定された DC ハフマンテーブルの配列のコピーを返します。 |
boolean |
getOptimizeHuffmanTables()
setOptimizeHuffmanTables の直前の呼び出しに渡された値を返します。 |
JPEGQTable[] |
getQTables()
setEncodeTables への直前の呼び出しで設定された数量化テーブルの配列のコピーを返します。 |
boolean |
isCompressionLossless()
JPEG プラグインは損失の発生する圧縮だけをサポートするので、 false を返します。 |
void |
setEncodeTables(JPEGQTable[] qTables,
JPEGHuffmanTable[] DCHuffmanTables,
JPEGHuffmanTable[] ACHuffmanTables)
省略されたストリームの符号化で使用するために数量化テーブルおよびハフマンテーブルを設定します。 |
void |
setOptimizeHuffmanTables(boolean optimize)
書き込み処理の一部として最適化されたイメージ用ハフマンテーブルを生成するようにライターに通知します。 |
void |
unsetCompression()
以前のすべての圧縮品質設定を削除します。 |
void |
unsetEncodeTables()
現在設定されている数量化テーブルおよびハフマンテーブルを削除します。 |
クラス java.lang.Object から継承したメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
コンストラクタの詳細 |
public JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam
を構築します。タイリングはサポートされません。プログレッシブエンコーディングはサポートされます。デフォルトのプログレッシブモードは MODE_DISABLED です。JPEG と呼ばれる 1 つの圧縮形式がサポートされます。デフォルトの圧縮品質は 0.75 です。
locale
- 圧縮タイプ名と品質説明を地域対応にするためにスーパークラスが使用する Locale
、または null
メソッドの詳細 |
public void unsetCompression()
デフォルトの実装は、圧縮品質を 0.75F
にリセットします。
ImageWriteParam
内の unsetCompression
IllegalStateException
- 圧縮モードが MODE_EXPLICIT
でない場合ImageWriteParam.setCompressionType(java.lang.String)
,
ImageWriteParam.setCompressionQuality(float)
public boolean isCompressionLossless()
false
を返します。
ImageWriteParam
内の isCompressionLossless
false
IllegalStateException
- 圧縮モードが MODE_EXPLICIT
でない場合public String[] getCompressionQualityDescriptions()
ImageWriteParam
の記述: getCompressionQualityValues
と共に使用できる String
の配列を返します。インデックス i
を持つ String
は、getCompressionQualityValues[i]
から getCompressionQualityValues[i + 1]
までの品質レベル範囲の概要を提供します。getCompressionQualityValues
から返された配列の長さは、getCompressionQualityDescriptions
から返された配列の長さより、常に長くなります。
例として、文字列「Good」、「Better」、「Best」は、範囲 [0, .33)
、[.33, .66)
、[.66, 1.0]
に関連付けることができます。この場合、getCompressionQualityDescriptions
は { "Good", "Better", "Best" }
を返し、getCompressionQualityValues
は { 0.0F, .33F, .66F, 1.0F }
を返します。
概要が使用できない場合、null
が返されます。getCompressionQualityValues
から null
が返される場合、このメソッドは null
も返す必要があります。
概要は、null
でない場合、getLocale
が返した Locale
に対して地域対応にする必要があります。
複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateException
がスローされます。
デフォルト実装では、圧縮がサポートされるか、圧縮モードが
MODE_EXPLICIT
であるかを調べます。これに当てはまる場合、
getCompressionTypes()
が null
のとき、あるいは getCompressionType()
が null
でないとき、<
null
を返します。
ImageWriteParam
内の getCompressionQualityDescriptions
String
の配列ImageWriteParam.getCompressionQualityValues()
public float[] getCompressionQualityValues()
ImageWriteParam
の記述: getCompressionQualityDescriptions
と共に使用できる float
の配列を返します。詳細は、getCompressionQualityDescriptions
を参照してください。
概要が使用できない場合、null
が返されます。getCompressionQualityDescriptions
から null
が返される場合、このメソッドは null
も返す必要があります。
複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateException
がスローされます。
デフォルト実装では、圧縮がサポートされるか、圧縮モードが
MODE_EXPLICIT
であるかを調べます。これに当てはまる場合、
getCompressionTypes()
が null
のとき、あるいは getCompressionType()
が null
でないとき、<
null
を返します。
ImageWriteParam
内の getCompressionQualityValues
getCompressionQualityDescriptions
からの String
で記述される、圧縮品質レベル間の範囲を示す float
の配列ImageWriteParam.getCompressionQualityDescriptions()
public boolean areTablesSet()
true
を返します。
true
public void setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
null
であってはなりません。ハフマンテーブルの 2 つの配列の要素数は同じでなければなりません。メタデータのフレームおよびスキャンヘッダのテーブル指示子は、これらの配列のインデックスと同等であると想定されます。引数配列は、このメソッドによりコピーされます。
qTables
- 数量化テーブルオブジェクトの配列DCHuffmanTables
- ハフマンテーブルオブジェクトの配列ACHuffmanTables
- ハフマンテーブルオブジェクトの配列
IllegalArgumentException
- いずれかの引数が null
であるか、4 つより多くの要素を持つ場合、または DC テーブルと AC テーブルの数が異なる場合unsetEncodeTables()
public void unsetEncodeTables()
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
public JPEGQTable[] getQTables()
setEncodeTables
への直前の呼び出しで設定された数量化テーブルの配列のコピーを返します。現在テーブルが設定されていない場合は null
を返します。
JPEGQTable
オブジェクトの配列、または null
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
public JPEGHuffmanTable[] getDCHuffmanTables()
setEncodeTables
への直前の呼び出しで設定された DC ハフマンテーブルの配列のコピーを返します。現在テーブルが設定されていない場合は null
を返します。
JPEGHuffmanTable
オブジェクトの配列、または null
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
public JPEGHuffmanTable[] getACHuffmanTables()
setEncodeTables
への直前の呼び出しで設定された AC ハフマンテーブルの配列のコピーを返します。現在テーブルが設定されていない場合は null
を返します。
JPEGHuffmanTable
オブジェクトの配列、または null
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
public void setOptimizeHuffmanTables(boolean optimize)
false
です。このフラグが true
に設定されている場合は、メタデータで指定されたすべてのテーブルをオーバーライドします。これは、このフラグを true
に設定して書き込まれたイメージには常にハフマンテーブルが含まれるということです。
optimize
- 書き込み時に最適化されたハフマンテーブルを生成するかどうかを示す boolean 値getOptimizeHuffmanTables()
public boolean getOptimizeHuffmanTables()
setOptimizeHuffmanTables
の直前の呼び出しに渡された値を返します。setOptimizeHuffmanTables
が呼び出されなかった場合は false
を返します。
true
setOptimizeHuffmanTables(boolean)
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.