|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjavax.imageio.spi.IIOServiceProvider
javax.imageio.spi.ImageReaderWriterSpi
javax.imageio.spi.ImageReaderSpi
public abstract class ImageReaderSpi
用於 ImageReader 的服務提供者介面 (SPI)。有關服務提供者類別的更多資訊,請參見 IIORegistry 類別的註釋。
每個 ImageReaderSpi 都提供了有關與之關聯的 ImageReader 類別的幾種型別的資訊。
使用 getVendorName、getDescription 和 getVersion 方法可獲得定義 SPI 類別和此類別簡明描述的供應商的名稱。可將這些方法進行國際化以提供特定於語言環境的輸出。這些方法主要用於提供可用於組織彈出選單或其他列表的簡短可讀資訊。
使用 getFormatNames、getFileSuffixes 和 getMIMETypes 方法可獲得與此服務有關聯的格式名稱、檔案後綴和 MIME 型別的列表。可以使用這些方法來標識候選 ImageReader,從而基於手動格式選擇、檔案命名或 MIME 關聯(例如,通過 HTTP 存取檔案或檔案作為電子郵件附件)對特定的檔案或串流進行解碼。
canDecodeInput 方法提供了確定哪些 ImageReader 最有可能解析特定資料串流的一條更可靠途徑。此方法允許服務提供者檢查實際的串流內容。
最後,通過調用 createReaderInstance 方法,可獲得與此服務提供者關聯的 ImageReader 類別的實例。任何重量級的初始化,例如載入本地資源庫或創建大型表,都應推遲,至少應該推遲到完成此方法的第一次調用。
IIORegistry,
ImageReader| 欄位摘要 | |
|---|---|
protected Class[] |
inputTypes
將從 getInputTypes 返回的 Class 物件陣列,該陣列最初為 null。 |
static Class[] |
STANDARD_INPUT_TYPE
將從 getInputTypes 返回的單元素陣列,該陣列最初包含 ImageInputStream.class。 |
protected String[] |
writerSpiNames
將從 getImageWriterSpiNames 返回的字元串陣列,該陣列最初為 null。 |
| 從類別 javax.imageio.spi.IIOServiceProvider 繼承的欄位 |
|---|
vendorName, version |
| 建構子摘要 | |
|---|---|
protected |
ImageReaderSpi()
建構一個空的 ImageReaderSpi。 |
|
ImageReaderSpi(String vendorName,
String version,
String[] names,
String[] suffixes,
String[] MIMETypes,
String readerClassName,
Class[] inputTypes,
String[] writerSpiNames,
boolean supportsStandardStreamMetadataFormat,
String nativeStreamMetadataFormatName,
String nativeStreamMetadataFormatClassName,
String[] extraStreamMetadataFormatNames,
String[] extraStreamMetadataFormatClassNames,
boolean supportsStandardImageMetadataFormat,
String nativeImageMetadataFormatName,
String nativeImageMetadataFormatClassName,
String[] extraImageMetadataFormatNames,
String[] extraImageMetadataFormatClassNames)
用給定的一組值建構 ImageReaderSpi。 |
| 方法摘要 | |
|---|---|
abstract boolean |
canDecodeInput(Object source)
如果給定的源物件看起來是此 reader 支持的格式,則返回 true。 |
ImageReader |
createReaderInstance()
返回與此服務提供者關聯的 ImageReader 實作的實例。 |
abstract ImageReader |
createReaderInstance(Object extension)
返回與此服務提供者關聯的 ImageReader 實作的實例。 |
String[] |
getImageWriterSpiNames()
返回一個 String 陣列,其包含所有能夠理解由與此服務提供者關聯的 ImageReader 使用的內部元資料表示形式的 ImageWriterSpi 類別的完全限定名。 |
Class[] |
getInputTypes()
返回 Class 物件陣列,指示可用作 reader 的 setInput 方法參數的物件型別。 |
boolean |
isOwnReader(ImageReader reader)
如果傳入的 ImageReader 物件為與此服務提供者關聯的 ImageReader 的實例,則返回 true。 |
| 從類別 javax.imageio.spi.IIOServiceProvider 繼承的方法 |
|---|
getDescription, getVendorName, getVersion, onDeregistration, onRegistration |
| 從類別 java.lang.Object 繼承的方法 |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| 欄位詳細資訊 |
|---|
public static final Class[] STANDARD_INPUT_TYPE
getInputTypes 返回的單元素陣列,該陣列最初包含 ImageInputStream.class。
protected Class[] inputTypes
getInputTypes 返回的 Class 物件陣列,該陣列最初為 null。
protected String[] writerSpiNames
getImageWriterSpiNames 返回的字元串陣列,該陣列最初為 null。
| 建構子詳細資訊 |
|---|
protected ImageReaderSpi()
ImageReaderSpi。為提供所有方法的可用版本,由子類別負責初始化實例變數和/或覆寫方法實作。
public ImageReaderSpi(String vendorName,
String version,
String[] names,
String[] suffixes,
String[] MIMETypes,
String readerClassName,
Class[] inputTypes,
String[] writerSpiNames,
boolean supportsStandardStreamMetadataFormat,
String nativeStreamMetadataFormatName,
String nativeStreamMetadataFormatClassName,
String[] extraStreamMetadataFormatNames,
String[] extraStreamMetadataFormatClassNames,
boolean supportsStandardImageMetadataFormat,
String nativeImageMetadataFormatName,
String nativeImageMetadataFormatClassName,
String[] extraImageMetadataFormatNames,
String[] extraImageMetadataFormatClassNames)
ImageReaderSpi。
vendorName - 供應商名稱,它是一個非 null 的 String。version - 版本標識符,它是一個非 null 的 String。names - 指示格式名稱的一個非 null 的 String 陣列。必須至少有一個項。suffixes - 指示常用檔案後綴的 String 陣列。如果沒有定義後綴,則應將其指定為 null。長度為 0 的陣列將被標準化為 null。MIMETypes - 指示格式的 MIME 型別的 String 陣列。如果沒有定義 MIME 型別,則應將其指定為 null。長度為 0 的陣列將被標準化為 null。readerClassName - 所關聯的 ImageReader 類別的完全限定名,它為一個非 null 的 String。inputTypes - 指示合法輸入型別的長度至少為 1 的 Class 物件的非 null 陣列。writerSpiNames - 命名所有與 ImageWriter 關聯的類別的 String 陣列,或者為 null。長度為 0 的陣列將被標準化為 null。supportsStandardStreamMetadataFormat - 一個 boolean 值,指示串流元資料物件是否可使用由標準元資料格式描述的階層樹。nativeStreamMetadataFormatName - 從 getNativeStreamMetadataFormatName 返回的一個 String,或者為 null。nativeStreamMetadataFormatClassName - 將用於實例化從 getNativeStreamMetadataFormat 返回的元資料格式物件的 String,或者為 null。extraStreamMetadataFormatNames - 從 getExtraStreamMetadataFormatNames 返回的 String 陣列,或者為 null。長度為 0 的陣列將被標準化為 null。extraStreamMetadataFormatClassNames - 用於實例化從 getStreamMetadataFormat 返回的元資料格式物件的 String 陣列,或者為 null。長度為 0 的陣列將被標準化為 null。supportsStandardImageMetadataFormat - 一個 boolean 值,指示圖像元資料物件是否可使用由標準元資料格式描述的階層樹。nativeImageMetadataFormatName - 從 getNativeImageMetadataFormatName 返回的一個 String,或者為 null。nativeImageMetadataFormatClassName - 用於實例化從 getNativeImageMetadataFormat 返回的元資料格式物件的 String,或者為 null。extraImageMetadataFormatNames - 從 getExtraImageMetadataFormatNames 返回的 String 陣列。長度為 0 的陣列將被標準化為 null。extraImageMetadataFormatClassNames - 用於實例化從 getImageMetadataFormat 返回的元資料格式物件的 String 陣列,或者為 null。長度為 0 的陣列將被標準化為 null。
IllegalArgumentException - 如果 vendorName 為 null。
IllegalArgumentException - 如果 version 為 null。
IllegalArgumentException - 如果 names 為 null 或長度為 0。
IllegalArgumentException - 如果 readerClassName 為 null。
IllegalArgumentException - 如果 inputTypes 為 null 或長度為 0。| 方法詳細資訊 |
|---|
public Class[] getInputTypes()
Class 物件陣列,指示可用作 reader 的 setInput 方法參數的物件型別。
對於大多數只接受來自 ImageInputStream 的輸入的 reader,應返回一個套件含 ImageInputStream.class 的單元素陣列。
null 的長度至少為 1 的 Class 物件陣列。
public abstract boolean canDecodeInput(Object source)
throws IOException
true。從此方法返回 true 並不保證將成功讀取,只表示基於對串流內容的簡明檢查應該有機會成功。如果此源為 ImageInputStream,實作通常將首先檢查串流的前幾個位元組以獲取與格式關聯的“幻數”。實際的讀取已開始後,在解碼完成之前的任何時間 reader 仍有可能指示失敗。
物件的狀態不受影響非常重要,這樣其他的 ImageReaderSpi 才能夠正確確定它們是否能解碼此物件。特別地,如果該源為 ImageInputStream,應使用 mark/reset 對保護此串流的位置。
對於可能嘗試讀取幾乎所有串流的格式(比如“原始”格式),為避免因採用更相近的比對而引起調用,應返回 false。
如果 source 不是由 getInputTypes 返回的類別之一的實例,此方法應只返回 false。
source - 要解碼的物件(通常是一個 ImageInputStream)。
true。
IllegalArgumentException - 如果 source 為 null。
IOException - 如果讀取該串流時發生 I/O 錯誤。
public ImageReader createReaderInstance()
throws IOException
ImageReader 實作的實例。返回的物件初始時處於初始狀態,好像調用過其 reset 方法。
預設實作只返回 createReaderInstance(null)。
ImageReader 實例。
IOException - 如果載入或初始化 reader 類別時發生錯誤,或在初始化或實例化 reader 物件時發生錯誤。
public abstract ImageReader createReaderInstance(Object extension)
throws IOException
ImageReader 實作的實例。返回的物件初始時處於初始狀態,好像調用過其 reset 方法。
可以在建構時向外掛程式提供 Object。物件的本質完全由外掛程式決定。
通常情況下,外掛程式將使用類似 return new MyImageReader(this) 的程式碼實作此方法。
extension - 特定於外掛程式的擴展物件,它可以為 null。
ImageReader 實例。
IOException - 如果實例化此 reader 的嘗試失敗。
IllegalArgumentException - 如果 ImageReader 建構子拋出一個 IllegalArgumentException,以指示此擴展物件不適合在這裡使用。public boolean isOwnReader(ImageReader reader)
ImageReader 物件為與此服務提供者關聯的 ImageReader 的實例,則返回 true。
預設的實作將 reader 參數的完全限定類別名與傳給建構子的類別名進行比較。如果需要更複雜的檢查,可覆寫此方法。
reader - 一個 ImageReader 實例。
reader 可識別,則返回 true。
IllegalArgumentException - 如果 reader 為 null。public String[] getImageWriterSpiNames()
String 陣列,其包含所有能夠理解由與此服務提供者關聯的 ImageReader 使用的內部元資料表示形式的 ImageWriterSpi 類別的完全限定名。或者如果沒有指定這樣的 ImageWriter,則返回 null。如果返回了非 null 的值,則其長度一定不為零。
陣列中的第一項必須是“首選”writer 的服務提供者的名稱,因為它將用於實例化由 ImageIO.getImageWriter(ImageReader) 返回的 ImageWriter。
使用此機制可獲取將能夠理解由 ImageReader 產生的非像素元資料的內部結構(請參見 IIOTreeInfo)的 ImageWriters。通過從 ImageReader 獲取此資料並將其傳給使用此方法獲取的 ImageWriters 之一,客戶端程序可讀取圖像、進行某些修改並寫回圖像,同時保留所有的元資料,而不需要理解有關此元資料的任何事情,甚至圖像的格式都不需知道。
ImageWriterSpi 名稱的長度至少為 1 的 String 陣列,或者返回 null。ImageIO.getImageWriter(ImageReader)
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。