|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.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。