|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.imageio.IIOParam javax.imageio.ImageWriteParam javax.imageio.plugins.jpeg.JPEGImageWriteParam
public class JPEGImageWriteParam
此類別添加了使用內置 JPEG writer 外掛程式時設置 JPEG 量化表和 Huffman 表以及請求為圖像計算最佳 Huffman 表的能力。此類別的實例將從內置 ImageWriter
的 getDefaultImageWriteParam
方法返回。
這些新增功能的主要目的是允許在編碼簡寫串流中使用表的規範。內置 JPEG writer 還將接受普通 ImageWriteParam
,在這種情況下,writer 將在內部建構所需的表。
無論是哪種情況,在 ImageWriteParam
中設置的質量對於底層資源庫而言意義都是相同的:1.00 表示全部為 1 的量化表,0.75 表示“標準”量化表(即視覺上無損失量化表),而 0.00 則表示全部為 255 的量化表。
簡寫串流的表常常通過首先寫入僅包含表的簡寫串流來指定,在有些應用程序中,這些表是提前準備好的。此類別允許直接從客戶端程式碼指定表。
通常,表是在傳入 writer 的 IIOMetadata
物件中指定的,這些物件中包括的所有表都會寫入串流中。如果沒有在元資料中指定表,則寫入簡寫串流。如果元資料中不包括任何表並且也沒有在 JPEGImageWriteParam
中指定任何表,則使用“標準”視覺上無損失表編碼簡寫串流。當某個簡寫串流必須在沒有首先向串流中寫入任何表的情況下進行寫入時,需要使用此類別來指定表。要使用此類別,傳入 writer 的元資料物件不能包含任何表,並且不能提供任何串流元資料。有關預設表的更多資訊,請參見
和 JPEGQTable
。
JPEGHuffmanTable
writer 的 getDefaultWriteParam
方法返回的預設 JPEGImageWriteParam
不包含任何表。預設表包括在 writer 返回的預設 IIOMetadata
物件中。
如果元資料封包含表,則忽略 JPEGImageWriteParam
中給定的表。此外,寫入一組表後,只有元資料中的表可以覆寫它們來進行後續寫入,不管寫入相同的串流還是不同的串流。為了使用此類別指定新表,必須調用 writer 的
方法。
reset
有關內置 JPEG 外掛程式的操作的更新資訊,請參見 JPEG metadata format specification and usage notes。
欄位摘要 |
---|
從類別 javax.imageio.IIOParam 繼承的欄位 |
---|
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset |
建構子摘要 | |
---|---|
JPEGImageWriteParam(Locale locale)
建構一個 JPEGImageWriteParam 。 |
方法摘要 | |
---|---|
boolean |
areTablesSet()
如果表是當前設置的,則返回 true 。 |
JPEGHuffmanTable[] |
getACHuffmanTables()
返回最近一次調用 setEncodeTables 設置的 AC Huffman 表所組成陣列的一個副本;如果當前沒有設置表,則返回 null 。 |
String[] |
getCompressionQualityDescriptions()
返回一個 String 陣列,可作為使用者介面的一部分與 getCompressionQualityValues 一起使用,以設置或顯示壓縮質量級別。 |
float[] |
getCompressionQualityValues()
返回一個 float 陣列,可作為使用者介面的一部分與 getCompressionQualityDescriptions 一起使用,以設置或顯示壓縮質量級別。 |
JPEGHuffmanTable[] |
getDCHuffmanTables()
返回最近一次調用 setEncodeTables 設置的 DC Huffman 表所組成陣列的一個副本;如果當前沒有設置表,則返回 null 。 |
boolean |
getOptimizeHuffmanTables()
返回傳入對 setOptimizeHuffmanTables 的最近一次調用中的值;如果從未調用 setOptimizeHuffmanTables ,則返回 false 。 |
JPEGQTable[] |
getQTables()
返回最近一次調用 setEncodeTables 設置的量化表所組成陣列的一個副本;如果當前沒有設置表,則返回 null 。 |
boolean |
isCompressionLossless()
返回 false ,因為 JPEG 外掛程式僅支持有損失的壓縮。 |
void |
setEncodeTables(JPEGQTable[] qTables,
JPEGHuffmanTable[] DCHuffmanTables,
JPEGHuffmanTable[] ACHuffmanTables)
設置量化表和 Huffman 表以在編碼簡寫串流中使用。 |
void |
setOptimizeHuffmanTables(boolean optimize)
告知 writer 是否作為寫入過程的一部分為圖像產生最佳 Huffman 表。 |
void |
unsetCompression()
移除所有以前的壓縮質量設置值。 |
void |
unsetEncodeTables()
移除當前設置的所有量化表和 Huffman 表。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam
。不支持平鋪。支持逐步編碼。預設的逐步網要為 MODE_DISABLED。支持名為 "JPEG" 的單個壓縮形式。預設的壓縮質量為 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
,因為 JPEG 外掛程式僅支持有損失的壓縮。
ImageWriteParam
中的 isCompressionLossless
false
。
IllegalStateException
- 如果壓縮網要不是 MODE_EXPLICIT
。public String[] getCompressionQualityDescriptions()
ImageWriteParam
複製的描述String
陣列,可作為使用者介面的一部分與 getCompressionQualityValues
一起使用,以設置或顯示壓縮質量級別。索引為 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
。
應該為由 getLocale
返回的 Locale
將描述本地化,如果 Locale 為非 null
的話。
如果有多個壓縮型別,但沒有設置任何一種壓縮型別,則拋出 IllegalStateException
。
預設實作檢查是否支持壓縮,以及壓縮網要是否為 MODE_EXPLICIT
。如果是這樣,而 getCompressionTypes()
為 null
或 getCompressionType()
為非 null
,則返回 null
。
ImageWriteParam
中的 getCompressionQualityDescriptions
String
陣列。ImageWriteParam.getCompressionQualityValues()
public float[] getCompressionQualityValues()
ImageWriteParam
複製的描述float
陣列,可作為使用者介面的一部分與 getCompressionQualityDescriptions
一起使用,以設置或顯示壓縮質量級別。有關更多資訊,請參閱 getCompressionQualityDescriptions
。
如果沒有描述可用,則返回 null
。如果從 getCompressionQualityDescriptions
返回 null
,則此方法也必須返回 null
。
如果有多個壓縮型別,但沒有設置任何一種壓縮型別,則拋出 IllegalStateException
。
預設實作檢查是否支持壓縮,以及壓縮網要是否為 MODE_EXPLICIT
。如果是這樣,而 getCompressionTypes()
為 null
或 getCompressionType()
為非 null
,則返回 null
。
ImageWriteParam
中的 getCompressionQualityValues
float
陣列,指示 getCompressionQualityDescriptions
中的 String
描述的壓縮質量級別之間的分界線。ImageWriteParam.getCompressionQualityDescriptions()
public boolean areTablesSet()
true
。
true
。public void setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
null
。兩個 Huffman 表的陣列必須具有相同的元素數。假定元資料中的幀和掃瞄標題的表說明符等效於這些陣列中的索引。使用此方法複製參數陣列。
qTables
- 量化表物件所組成的陣列。DCHuffmanTables
- Huffman 表物件所組成的陣列。ACHuffmanTables
- Huffman 表物件所組成的陣列。
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 Huffman 表所組成陣列的一個副本;如果當前沒有設置表,則返回 null
。
JPEGHuffmanTable
物件所組成的陣列;或者 null
。setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
public JPEGHuffmanTable[] getACHuffmanTables()
setEncodeTables
設置的 AC Huffman 表所組成陣列的一個副本;如果當前沒有設置表,則返回 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
而寫入的任何圖像總是包含 Huffman 表。
optimize
- 一個 boolean 值,指示是否在寫入時產生最佳 Huffman 表。getOptimizeHuffmanTables()
public boolean getOptimizeHuffmanTables()
setOptimizeHuffmanTables
的最近一次調用中的值;如果從未調用 setOptimizeHuffmanTables
,則返回 false
。
true
。setOptimizeHuffmanTables(boolean)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。