public class JPEGImageWriteParam extends ImageWriteParam
ImageWriter
のgetDefaultImageWriteParam
メソッドから返されます。
これらを追加する主な目的は、表の指定を、省略されたストリームのエンコーディングで使用できるようにすることです。組み込みJPEGライターは、通常のImageWriteParam
も受け入れます。この場合、ライターは必要な表を内部的に構築します。
どちらの場合も、ImageWriteParam
の品質の設定には、基本となるライブラリの場合と同じ意味があります。1.00はすべての1の数量化表を、0.75は「標準の」視覚的に損失のない数量化表を、0.00はすべての255の数量化表を意味します。
省略されたストリームの表は通常、表だけを含む省略されたストリームを最初に書き込むことにより指定されますが、アプリケーションによっては表が前もって固定されています。このクラスにより、表をクライアント・コードから直接指定できるようになります。
通常、表はライターに渡されたIIOMetadata
オブジェクトで指定され、これらのオブジェクトに含まれる表はすべてストリームに書き込まれます。メタデータに表が指定されていない場合は、省略されたストリームが書き込まれます。メタデータに表が含まれておらず、JPEGImageWriteParam
で表が指定されない場合、省略されたストリームは「標準の」視覚的に損失のない表を使用してエンコードされます。最初に表をストリームに書き込まないで、省略されたストリームを書き込む必要がある場合は、表の指定にこのクラスが必要です。このクラスを使用するためには、ライターに渡されたメタデータ・オブジェクトに表を格納しても、ストリーム・メタデータを提供してもいけません。デフォルト表の詳細は、JPEGQTable
およびJPEGHuffmanTable
を参照してください。
ライターのgetDefaultWriteParam
メソッドから返されるデフォルトのJPEGImageWriteParam
には表は格納されていません。デフォルトの表は、ライターから返されるデフォルトのIIOMetadata
オブジェクトに含まれています。
メタデータに表が格納されている場合、JPEGImageWriteParam
で指定される表は無視されます。さらに、表のセットが書き込まれると、同じストリームまたは別のストリームへのその後の書込みに対してそれらの表をオーバーライドできるのは、メタデータ内の表だけです。このクラスを使用して新しい表を指定するためには、ライターのreset
メソッドを呼び出す必要があります。
組み込みJPEGプラグインの操作の詳細については、「JPEGメタデータ形式の仕様と使用法に関する注記」を参照してください。
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, compressionMode, compressionQuality, compressionType, compressionTypes, locale, MODE_COPY_FROM_METADATA, MODE_DEFAULT, MODE_DISABLED, MODE_EXPLICIT, preferredTileSizes, progressiveMode, tileGridXOffset, tileGridYOffset, tileHeight, tileWidth, tilingMode, tilingSet
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
コンストラクタと説明 |
---|
JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam を構築します。 |
修飾子と型 | メソッドと説明 |
---|---|
boolean |
areTablesSet()
現在表が設定されている場合は
true を返します。 |
JPEGHuffmanTable[] |
getACHuffmanTables()
setEncodeTables への直前の呼出しで設定されたACハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull を返します。 |
String[] |
getCompressionQualityDescriptions()
圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、
getCompressionQualityValues とともに使用できるString の配列を返します。 |
float[] |
getCompressionQualityValues()
圧縮品質レベルの表示または設定のためのユーザー・インタフェースの一部として、
getCompressionQualityDescriptions とともに使用できるfloat の配列を返します。 |
JPEGHuffmanTable[] |
getDCHuffmanTables()
setEncodeTables への直前の呼出しで設定されたDCハフマン表の配列のコピーを返します。現在表が設定されていない場合はnull を返します。 |
boolean |
getOptimizeHuffmanTables()
setOptimizeHuffmanTables の直前の呼出しに渡された値を返します。setOptimizeHuffmanTables が呼び出されなかった場合は、false を返します。 |
JPEGQTable[] |
getQTables()
setEncodeTables への直前の呼出しで設定された数量化表の配列のコピーを返します。現在表が設定されていない場合はnull を返します。 |
boolean |
isCompressionLossless()
JPEGプラグインは損失の発生する圧縮だけをサポートするので、
false を返します。 |
void |
setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
省略されたストリームのエンコードで使用するために数量化表およびハフマン表を設定します。
|
void |
setOptimizeHuffmanTables(boolean optimize)
書込み処理の一部として最適化されたイメージ用ハフマン表を生成するようにライターに通知します。
|
void |
unsetCompression()
以前のすべての圧縮品質設定を削除します。
|
void |
unsetEncodeTables()
現在設定されている数量化表およびハフマン表を削除します。
|
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, getBitRate, getCompressionMode, getCompressionQuality, getCompressionType, getCompressionTypes, getLocale, getLocalizedCompressionTypeName, getPreferredTileSizes, getProgressiveMode, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTilingMode, setCompressionMode, setCompressionQuality, setCompressionType, setProgressiveMode, setTiling, setTilingMode, unsetTiling
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
public JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam
を構築します。タイリングはサポートされません。プログレッシブ・エンコーディングはサポートされます。デフォルトのプログレッシブ・モードはMODE_DISABLEDです。JPEGと呼ばれる1つの圧縮形式がサポートされます。デフォルトの圧縮品質は0.75です。locale
- 圧縮方式名と品質説明をローカライズするためにスーパー・クラスが使用するLocale
、またはnull
。public void unsetCompression()
デフォルトの実装は、圧縮品質を0.75F
にリセットします。
unsetCompression
、クラス: ImageWriteParam
IllegalStateException
- 圧縮モードがMODE_EXPLICIT
でない場合。ImageWriteParam.setCompressionType(java.lang.String)
, ImageWriteParam.setCompressionQuality(float)
public boolean isCompressionLossless()
false
を返します。isCompressionLossless
、クラス: ImageWriteParam
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
を返します。
getCompressionQualityDescriptions
、クラス: ImageWriteParam
String
の配列。ImageWriteParam.getCompressionQualityValues()
public float[] getCompressionQualityValues()
ImageWriteParam
getCompressionQualityDescriptions
とともに使用できるfloat
の配列を返します。詳細は、getCompressionQualityDescriptions
を参照してください。
説明が使用できない場合、null
が返されます。getCompressionQualityDescriptions
からnull
が返される場合、このメソッドはnull
も返す必要があります。
複数の圧縮方式があり、そのどれもが設定されていない場合、IllegalStateException
がスローされます。
デフォルト実装では、圧縮がサポートされるか、圧縮モードがMODE_EXPLICIT
であるかを調べます。これに当てはまる場合、getCompressionTypes()
がnull
のとき、あるいはgetCompressionType()
がnull
でないときにnull
を返します。
getCompressionQualityValues
、クラス: ImageWriteParam
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()
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)
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.