JavaTM 2 Platform
Standard Ed. 6

javax.imageio
介面 ImageTranscoder

所有已知實作類別:
ImageWriter

public interface ImageTranscoder

提供元資料程式碼轉換功能的介面。

只要先執行讀取操作,然後執行寫入操作,任何圖像都可以進行程式碼轉換(寫入為一種與原存儲格式不同的格式)。不過,由於格式的不同,這一過程中可能會丟失資料。

通常,如果可以創建特定於格式的元資料物件來封裝盡可能多的有關圖像及其關聯元資料的資訊(以能被用來執行編碼的特定 ImageWriter 所理解的形式),則可以獲得最好的結果。

ImageTranscoder 可以用來將 ImageReader 所提供的 IIOMetadata 物件(表示每串流和每圖像元資料)轉換成適合特定 ImageWriter 編碼的相應物件。在直接對 ImageWriter 調用此介面方法的情況下,輸出將適合該 writer。

IIOMetadata 物件轉換成特定於 writer 的格式的內部細節將根據操作上下文的不同而不同。通常,ImageWriter 將檢查傳入的物件,查看它是否實作了該 writer 熟悉的其他介面。這種情況是有可能的,例如,如果該物件是通過在 reader 外掛程式上使用讀取操作獲得的,而該外掛程式由與 writer 相同的供應商寫入。在這種情況下,writer 可以通過使用其特定於外掛程式的介面來存取傳入的物件。在這種情況下,如果圖像檔案格式保持不變,重新編碼可能接近於無損失。如果格式是變化的,則 writer 仍然可以試著保留盡可能多的資訊。

如果傳入物件沒有實作 writer 已知的任何其他介面,則該 writer 別無選擇,只能通過標準 IIOMetadata 介面(比如 IIOMetadata.getAsTree 提供的階層樹型視圖)存取它。在這種情況下,很可能會有資訊的嚴重丟失。

獨立的 ImageTranscoder 實質上與上例中的 writer 外掛程式起著相同的作用。它必須熟悉由 reader 和 writer 外掛程式使用的私有介面,並手工實例化可由 writer 使用的物件。得到的元資料對象可由 writer 直接使用。

該標準 API 中不提供任何 ImageTranscoder 的獨立實作。相反,此介面的用途是在需要時為將由應用程序創建和開發的實作提供一種方法。


方法摘要
 IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
          返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。
 IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
          返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。
 

方法詳細資訊

convertStreamMetadata

IIOMetadata convertStreamMetadata(IIOMetadata inData,
                                  ImageWriteParam param)
返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。

可以提供一個可選的 ImageWriteParam,用於其能影響串流元資料的結構的情況。

如果所提供的 ImageWriteParam 套件含可選的、不被此 writer 或 transcoder 理解的設置值,則忽略這些值。

參數:
inData - 表示串流元資料的 IIOMetadata 物件,用於初始化所返回物件的狀態。
param - 將用於對圖像進行編碼的 ImageWriteParam,或者為 null
返回:
一個 IIOMetadata 物件,如果外掛程式沒有提供元資料編碼功能,則返回 null
拋出:
IllegalArgumentException - 如果 inDatanull

convertImageMetadata

IIOMetadata convertImageMetadata(IIOMetadata inData,
                                 ImageTypeSpecifier imageType,
                                 ImageWriteParam param)
返回一個 IIOMetadata 物件,該物件可用於編碼,並且可以使用其文檔介面或特定於將用於編碼的 writer 外掛程式的其他介面有選擇地對其進行修改。

可以提供一個可選的 ImageWriteParam,用於其能影響圖像元資料的結構的情況。

如果所提供的 ImageWriteParam 套件含可選的、不被此 writer 或 transcoder 理解的設置值,則忽略這些值。

參數:
inData - 表示圖像元資料的 IIOMetadata 物件,用於初始化所返回物件的狀態。
imageType - 指示將與元資料關聯的圖像的佈局和顏色資訊的 ImageTypeSpecifier
param - 將用於對圖像進行編碼的 ImageWriteParam,或者為 null
返回:
一個 IIOMetadata 物件,如果外掛程式沒有提供元資料編碼功能,則返回 null
拋出:
IllegalArgumentException - 如果 inDataimageTypenull

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only