|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.imageio.spi.IIOServiceProvider javax.imageio.spi.ImageReaderWriterSpi javax.imageio.spi.ImageWriterSpi
public abstract class ImageWriterSpi
用於 ImageWriter
的服務提供者介面 (SPI)。有關服務提供者類別的更多資訊,請參見 IIORegistry
類別的註釋。
每個 ImageWriterSpi
都提供了有關與之關聯的 ImageWriter
類別的幾種型別的資訊。
使用 getVendorName
、getDescription
和 getVersion
方法可獲得定義 SPI 類別和此類別簡明描述的供應商的名稱。可將這些方法進行國際化,以提供特對於語言環境的輸出。這些方法主要用於提供可用於組織彈出選單或其他列表的簡短可寫資訊。
使用 getFormatNames
、getFileSuffixes
和 getMIMEType
方法可獲得與服務有關聯的格式名稱、檔案後綴和 MIME 型別的列表。使用這些方法可識別候選 ImageWriter
,從而基於手動格式選擇、檔案命名或 MIME 關聯寫入特定檔案或串流。
canEncodeImage
方法提供了確定最有可能解析特定資料串流的 ImageWriter
的更可靠途徑。此方法允許服務提供者檢查實際的圖像內容。
最後,通過調用 createWriterInstance
方法,可獲得與此服務提供者關聯的 ImageWriter
類別的實例。任何重量級的初始化,例如載入本地資源庫或創建大的表,都應推遲,至少應該推遲到完成此方法的第一次調用。
IIORegistry
,
ImageTypeSpecifier
,
ImageWriter
欄位摘要 | |
---|---|
protected Class[] |
outputTypes
將從 getOutputTypes 返回的 Class 物件的陣列,該陣列最初為 null 。 |
protected String[] |
readerSpiNames
將從 getImageReaderSpiNames 返回的字元串陣列,該陣列最初為 null 。 |
static Class[] |
STANDARD_OUTPUT_TYPE
從 getInputTypes 返回的單元素陣列,該陣列最初包含 ImageInputStream.class 。 |
從類別 javax.imageio.spi.IIOServiceProvider 繼承的欄位 |
---|
vendorName, version |
建構子摘要 | |
---|---|
protected |
ImageWriterSpi()
建構一個空的 ImageWriterSpi 。 |
|
ImageWriterSpi(String vendorName,
String version,
String[] names,
String[] suffixes,
String[] MIMETypes,
String writerClassName,
Class[] outputTypes,
String[] readerSpiNames,
boolean supportsStandardStreamMetadataFormat,
String nativeStreamMetadataFormatName,
String nativeStreamMetadataFormatClassName,
String[] extraStreamMetadataFormatNames,
String[] extraStreamMetadataFormatClassNames,
boolean supportsStandardImageMetadataFormat,
String nativeImageMetadataFormatName,
String nativeImageMetadataFormatClassName,
String[] extraImageMetadataFormatNames,
String[] extraImageMetadataFormatClassNames)
用給定的一組值建構 ImageWriterSpi 。 |
方法摘要 | |
---|---|
abstract boolean |
canEncodeImage(ImageTypeSpecifier type)
如果與此服務提供者關聯的 ImageWriter 實作能夠使用給定的佈局編碼圖像,則返回 true 。 |
boolean |
canEncodeImage(RenderedImage im)
如果與此服務提供者關聯的 ImageWriter 實作能夠編碼給定的 RenderedImage 實例,則返回 true 。 |
ImageWriter |
createWriterInstance()
返回與此服務提供者關聯的 ImageWriter 實作的實例。 |
abstract ImageWriter |
createWriterInstance(Object extension)
返回與此服務提供者關聯的 ImageWriter 實作的實例。 |
String[] |
getImageReaderSpiNames()
返回一個 String 陣列,該陣列包含所有能夠理解由與此服務提供者關聯的 ImageWriter 使用的內部元資料表示形式的 ImageReaderSpi 類別的完全限定名。 |
Class[] |
getOutputTypes()
返回 Class 物件陣列,指示可用作 setOutput 方法參數的物件型別。 |
boolean |
isFormatLossless()
如果此 writer 輸出的格式準確保留了像素資料位,則返回 true 。 |
boolean |
isOwnWriter(ImageWriter writer)
如果傳入的 ImageWriter 物件是與此服務提供者關聯的 ImageWriter 的實例,則返回 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_OUTPUT_TYPE
getInputTypes
返回的單元素陣列,該陣列最初包含 ImageInputStream.class
。
protected Class[] outputTypes
getOutputTypes
返回的 Class
物件的陣列,該陣列最初為 null
。
protected String[] readerSpiNames
getImageReaderSpiNames
返回的字元串陣列,該陣列最初為 null
。
建構子詳細資訊 |
---|
protected ImageWriterSpi()
ImageWriterSpi
。為提供所有方法的可用版本,由子類別負責初始化實例變數和/或覆寫方法實作。
public ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, Class[] outputTypes, String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
ImageWriterSpi
。
vendorName
- 供應商名稱,它是一個非 null
的 String
。version
- 版本標識符,它是一個非 null
的 String
。names
- 指示格式名稱的一個非 null
的 String
陣列。必須至少有一個項。suffixes
- 指示常用檔案後綴的 String
陣列。如果沒有定義後綴,則應指定為 null
。長度為 0 的陣列將被標準化為 null
。MIMETypes
- 指示格式的 MIME 型別的 String
陣列。如果沒有定義後綴,則應指定為 null
。長度為 0 的陣列將被標準化為 null
。writerClassName
- 所關聯的 ImageWriterSpi
類別的完全限定名,它為一個非 null
的 String
。outputTypes
- 指示合法的輸出型別的長度至少為 1 的 Class
物件的陣列。readerSpiNames
- 命名所有與 ImageReader
關聯的類別的長度至少為 1 的 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
- 如果 writerClassName
為 null
。
IllegalArgumentException
- 如果 outputTypes
為 null
或長度為 0。方法詳細資訊 |
---|
public boolean isFormatLossless()
true
。預設實作返回 true
。
true
。public Class[] getOutputTypes()
Class
物件陣列,指示可用作 setOutput
方法參數的物件型別。
對於大多數只輸出到 ImageOutputStream
的 writer,應返回一個套件含 ImageOutputStream.class
的單元素陣列。
null
的 Class
物件陣列。public abstract boolean canEncodeImage(ImageTypeSpecifier type)
ImageWriter
實作能夠使用給定的佈局編碼圖像,則返回 true
。佈局(即 圖像的 SampleModel
和 ColorModel
)由 ImageTypeSpecifier
物件描述。
返回的值為 true
並不能絕對保證成功地編碼;編碼過程中仍有可能因為類似 I/O 錯誤、不一致或錯誤的資料結構等而產生錯誤。執行對圖像的基本結構的合理檢查是為了確定圖像是否處在編碼格式範圍內。例如,如果要求一個只能編碼灰度格式的服務提供者處理 RGB BufferedImage
,將返回 false
。類似地,能夠編碼 8 位 RGB 圖像格式的服務提供者可能拒絕編碼與 alpha 通道關聯的圖像。
不同的 ImageWriter
以及由此導致的不同的服務提供者,可以更嚴格或更鬆散。例如,即使為了存儲而不得不減少每個圖像的像素,從而使精度下降,也有可能接受預乘 alpha 的圖像。
type
- 指定將要寫入的圖像的佈局的 ImageTypeSpecifier
。
true
。
IllegalArgumentException
- 如果 type
為 null
。public boolean canEncodeImage(RenderedImage im)
ImageWriter
實作能夠編碼給定的 RenderedImage
實例,則返回 true
。注意,這包括 java.awt.image.BufferedImage
的實例。
有關此方法的語義資訊,請參見對 canEncodeImage(ImageTypeSpecifier)
的討論。
im
- 要編碼的 RenderedImage
的實例。
true
。
IllegalArgumentException
- 如果 im
為 null
。public ImageWriter createWriterInstance() throws IOException
ImageWriter
實作的實例。返回的物件最初處於初始狀態,就像是調用過其 reset
方法。
預設實作只返回 createWriterInstance(null)
。
ImageWriter
實例。
IOException
- 如果載入或初始化 writer 類別時發生錯誤,或在實例化或初始化 writer 物件時發生錯誤。public abstract ImageWriter createWriterInstance(Object extension) throws IOException
ImageWriter
實作的實例。返回的物件最初處於初始狀態,就像是調用過其 reset
方法。
可以在建構時向外掛程式提供 Object
。物件的本質完全由外掛程式決定。
通常情況下,外掛程式將使用類似 return new MyImageWriter(this)
的程式碼來實作此方法。
extension
- 特定於外掛程式的擴展物件,該物件可為 null
。
ImageWriter
實例。
IOException
- 如果實例化此 writer 的嘗試失敗。
IllegalArgumentException
- 如果 ImageWriter
的建構子拋出一個 IllegalArgumentException
指示此擴展物件不適合在這裡使用。public boolean isOwnWriter(ImageWriter writer)
ImageWriter
物件是與此服務提供者關聯的 ImageWriter
的實例,則返回 true
。
writer
- 一個 ImageWriter
實例。
writer
可識別,則返回 true
。
IllegalArgumentException
- 如果 writer
為 null
。public String[] getImageReaderSpiNames()
String
陣列,該陣列包含所有能夠理解由與此服務提供者關聯的 ImageWriter
使用的內部元資料表示形式的 ImageReaderSpi
類別的完全限定名。如果沒有指定這樣的 ImageReaders
,則返回 null
。如果返回了非 null
的值,則其長度一定不能為零。
陣列中的第一項必須是“首選”reader 的服務提供者的名稱,因為它將用於實例化由 ImageIO.getImageReader(ImageWriter)
返回的 ImageReader
。
此機制可用於獲取將以 ImageWriter
能夠理解的結構產生非像素元資料的 ImageReaders
(請參見 IIOExtraDataInfo
)。通過讀取此圖像並從使用此方法獲取的 ImageReaders
之一獲取此資料並將其傳給 ImageWriter
,客戶端程序可讀取圖像、進行某些修改並寫回圖像,同時保留所有的元資料,而不需要理解有關此元資料內部結構的任何事情,甚至圖像的格式也不需知道。
ImageReaderSpi
名稱的 String
陣列,或者返回 null
。ImageIO.getImageReader(ImageWriter)
,
ImageReaderSpi.getImageWriterSpiNames()
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。