|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object javax.imageio.ImageIO
public final class ImageIO
該類別包含一些用來尋找 ImageReader
和 ImageWriter
以及執行簡單編碼和解碼的靜態便捷方法。
方法摘要 | |
---|---|
static ImageInputStream |
createImageInputStream(Object input)
返回一個 ImageInputStream ,它將從給定 Object 中獲取輸入。 |
static ImageOutputStream |
createImageOutputStream(Object output)
返回一個 ImageOutputStream ,它將其輸出發送到給定 Object 。 |
static File |
getCacheDirectory()
返回由 setCacheDirectory 設置的當前值;如果沒有顯式設置該值,則返回 null 。 |
static ImageReader |
getImageReader(ImageWriter writer)
返回對應於給定 ImageWriter 的 ImageReader (如果有);如果此 ImageWriter 的外掛程式沒有指定相應的 ImageReader ,或者給定 ImageWriter 沒有註冊,則返回 null 。 |
static Iterator<ImageReader> |
getImageReaders(Object input)
返回包含所有當前已註冊 ImageReader 的 Iterator ,這些 ImageReader 聲稱能夠解碼所提供的 Object (通常是一個 ImageInputStream )。 |
static Iterator<ImageReader> |
getImageReadersByFormatName(String formatName)
返回包含所有當前已註冊 ImageReader 的 Iterator ,這些 ImageReader 聲稱能夠解碼指定格式。 |
static Iterator<ImageReader> |
getImageReadersByMIMEType(String MIMEType)
返回包含所有當前已註冊 ImageReader 的 Iterator ,這些 ImageReader 聲稱能夠解碼具有給定 MIME 型別的檔案。 |
static Iterator<ImageReader> |
getImageReadersBySuffix(String fileSuffix)
返回包含所有當前已註冊 ImageReader 的 Iterator ,這些 ImageReader 聲稱能夠解碼具有給定後綴的檔案。 |
static Iterator<ImageTranscoder> |
getImageTranscoders(ImageReader reader,
ImageWriter writer)
返回包含所有當前已註冊 ImageTranscoder 的 Iterator ,這些 ImageTranscoder 聲稱能夠在給定 ImageReader 和 ImageWriter 的元資料之間進行程式碼轉換。 |
static ImageWriter |
getImageWriter(ImageReader reader)
返回對應於給定 ImageReader 的 ImageWriter (如果有);如果此 ImageReader 的外掛程式沒有指定相應的 ImageWriter ,或者給定的 ImageReader 沒有註冊,則返回 null 。 |
static Iterator<ImageWriter> |
getImageWriters(ImageTypeSpecifier type,
String formatName)
返回包含所有當前已註冊 ImageWriter 的 Iterator ,這些 ImageWriter 聲稱能夠編碼使用給定格式的、具有給定佈局(使用 ImageTypeSpecifier 指定)的圖像。 |
static Iterator<ImageWriter> |
getImageWritersByFormatName(String formatName)
返回包含所有當前已註冊 ImageWriter 的 Iterator ,這些 ImageReader 聲稱能夠編碼指定格式。 |
static Iterator<ImageWriter> |
getImageWritersByMIMEType(String MIMEType)
返回包含所有當前已註冊 ImageWriter 的 Iterator ,這些 ImageReader 聲稱能夠編碼具有給定 MIME 型別的檔案。 |
static Iterator<ImageWriter> |
getImageWritersBySuffix(String fileSuffix)
返回包含所有當前已註冊 ImageWriter 的 Iterator ,這些 ImageReader 聲稱能夠編碼具有給定後綴的檔案。 |
static String[] |
getReaderFileSuffixes()
返回一個 String 陣列,該陣列列出與當前已註冊 reader 集合所理解的格式關聯的所有檔案後綴。 |
static String[] |
getReaderFormatNames()
返回一個 String 陣列,該陣列列出被當前已註冊 reader 集合所理解的所有非正式格式名稱。 |
static String[] |
getReaderMIMETypes()
返回一個 String 陣列,該陣列列出被當前已註冊 reader 集合所理解的所有 MIME 型別。 |
static boolean |
getUseCache()
返回由 setUseCache 設置的當前值;如果沒有顯式設置該值,則返回 true 。 |
static String[] |
getWriterFileSuffixes()
返回一個 String 陣列,該陣列列出與當前已註冊 writer 集合所理解的格式關聯的所有檔案後綴。 |
static String[] |
getWriterFormatNames()
返回一個 String 陣列,該陣列列出當前已註冊 writer 集合所理解的所有非正式格式名稱。 |
static String[] |
getWriterMIMETypes()
返回一個 String 陣列,該陣列列出當前已註冊 writer 集合所理解的所有 MIME 型別。 |
static BufferedImage |
read(File input)
返回一個 BufferedImage ,作為使用 ImageReader (它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 File 的結果。 |
static BufferedImage |
read(ImageInputStream stream)
返回一個 BufferedImage ,作為使用 ImageReader (它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 ImageInputStream 的結果。 |
static BufferedImage |
read(InputStream input)
返回一個 BufferedImage ,作為使用 ImageReader (它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 InputStream 的結果。 |
static BufferedImage |
read(URL input)
返回一個 BufferedImage ,作為使用 ImageReader (它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 URL 的結果。 |
static void |
scanForPlugins()
掃瞄應用程序類別路徑上的外掛程式,載入其服務提供者類別,並使用 IIORegistry 為每一個找到的外掛程式註冊一個服務提供者實例。 |
static void |
setCacheDirectory(File cacheDirectory)
設置將在其中創建快取記憶體檔案的目錄。 |
static void |
setUseCache(boolean useCache)
設置一個標記,指示在創建 ImageInputStream 和 ImageOutputStream 時是否應該使用基於磁碟的快取記憶體檔案。 |
static boolean |
write(RenderedImage im,
String formatName,
File output)
使用支持給定格式的任意 ImageWriter 將一個圖像寫入 File 。 |
static boolean |
write(RenderedImage im,
String formatName,
ImageOutputStream output)
使用支持給定格式的任意 ImageWriter 將一個圖像寫入 ImageOutputStream 。 |
static boolean |
write(RenderedImage im,
String formatName,
OutputStream output)
使用支持給定格式的任意 ImageWriter 將一個圖像寫入 OutputStream 。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
方法詳細資訊 |
---|
public static void scanForPlugins()
IIORegistry
為每一個找到的外掛程式註冊一個服務提供者實例。
需要此方法是因為應用程序類別路徑在理論上是可以更改的,或者說附加的外掛程式可以變得可用。不需要每次調用 API 時都重新掃瞄類別路徑,可以只在第一次調用時自動掃瞄。客戶端可以調用此方法來啟動重新掃瞄。因此,只有在運行時使新外掛程式動態可用的複雜應用程序才需要調用此方法。
上下文 ClassLoader
的 getResources
方法被用來沿應用程序類別路徑尋找包含名為 META-INF/services/javax.imageio.spi.
classname 的檔案的 JAR 檔案,其中 classname 是 ImageReaderSpi
、ImageWriterSpi
、ImageTranscoderSpi
、ImageInputStreamSpi
或 ImageOutputStreamSpi
之一。
所尋找檔案的內容表示實際實作類別的名稱,這些類別實作上述服務提供者介面;然後可以使用預設類別載入器載入每個類別並實例化每個類別的實例,然後將其放入註冊表中供以後獲取。
確切的搜尋位置集合取決於 Java 運行時環境的實作。
ClassLoader.getResources(java.lang.String)
public static void setUseCache(boolean useCache)
ImageInputStream
和 ImageOutputStream
時是否應該使用基於磁碟的快取記憶體檔案。
在從標準 InputStream
中讀取資料時,有必要在快取記憶體中保存以前讀取的資訊,因為底層串流不允許重新讀取資料。類似地,在將資料寫入標準 OutputStream
時,可以使用某一快取記憶體來允許以前寫入的值在被刷新並轉到最終目標前可以被更改。
該快取記憶體可以駐留在主存或磁碟上。如果將此標記設置為 false
,則不允許將磁碟用於將來的串流,這在使用小圖像時很有利,因為可以免除創建和銷毀檔案所帶來的開銷。
在啟動時,該值被設置為 true
。
useCache
- 指示是否應使用快取記憶體檔案(在可選的情況下)的 boolean
。getUseCache()
public static boolean getUseCache()
setUseCache
設置的當前值;如果沒有顯式設置該值,則返回 true
。
ImageInputStream
和 ImageOutputStream
,則返回 true。setUseCache(boolean)
public static void setCacheDirectory(File cacheDirectory)
null
表示將使用與系統有關的預設臨時檔案目錄。如果 getUseCache
返回 false,則忽略此值。
cacheDirectory
- 指定目錄的 File
。
SecurityException
- 如果安全管理器拒絕對該目錄的存取。
IllegalArgumentException
- 如果 cacheDir
為非 null
但它不是一個目錄。File.createTempFile(String, String, File)
,
getCacheDirectory()
public static File getCacheDirectory()
setCacheDirectory
設置的當前值;如果沒有顯式設置該值,則返回 null
。
File
,表示將在其中創建快取記憶體檔案的目錄;null
指示與系統有關的預設臨時檔案目錄。setCacheDirectory(java.io.File)
public static ImageInputStream createImageInputStream(Object input) throws IOException
ImageInputStream
,它將從給定 Object
中獲取輸入。查詢使用 IIORegistry
類別註冊的 ImageInputStreamSpi
集合,能夠從所提供的物件中獲取輸入的第一個 ImageInputStreamSpi 將被用來創建返回的 ImageInputStream
。如果沒有合適的 ImageInputStreamSpi
存在,則返回 null
。
getUseCache
和 getCacheDirectory
返回的當前快取記憶體設置將被用來控制快取記憶體。
input
- 用作輸入源的 Object
,比如 File
、可讀取的 RandomAccessFile
或 InputStream
。
ImageInputStream
或 null
。
IllegalArgumentException
- 如果 input
為 null
。
IOException
- 如果需要快取記憶體檔案但無法創建。ImageInputStreamSpi
public static ImageOutputStream createImageOutputStream(Object output) throws IOException
ImageOutputStream
,它將其輸出發送到給定 Object
。查詢使用 IIORegistry
類別註冊的 ImageOutputStreamSpi
集合,能夠從所提供的物件發送輸出的第一個 ImageOutputStreamSpi 將被用來創建返回的 ImageOutputStream
。如果沒有合適的 ImageOutputStreamSpi
存在,則返回 null
。
getUseCache
和 getCacheDirectory
返回的當前快取記憶體設置將被用來控制快取記憶體。
output
- 用作輸出目標的 Object
,比如 File
、可寫入的 RandomAccessFile
或 OutputStream
。
ImageOutputStream
或 null
。
IllegalArgumentException
- 如果 output
為 null
。
IOException
- 如果需要快取記憶體檔案但無法創建。ImageOutputStreamSpi
public static String[] getReaderFormatNames()
String
陣列,該陣列列出被當前已註冊 reader 集合所理解的所有非正式格式名稱。
String
陣列。public static String[] getReaderMIMETypes()
String
陣列,該陣列列出被當前已註冊 reader 集合所理解的所有 MIME 型別。
String
陣列。public static String[] getReaderFileSuffixes()
String
陣列,該陣列列出與當前已註冊 reader 集合所理解的格式關聯的所有檔案後綴。
String
陣列。public static Iterator<ImageReader> getImageReaders(Object input)
ImageReader
的 Iterator
,這些 ImageReader 聲稱能夠解碼所提供的 Object
(通常是一個 ImageInputStream
)。
在從此方法退出時,該串流的位置仍然是它以前的位置。
input
- ImageInputStream
或包含解碼圖像資料的其他 Object
。
ImageReader
的 Iterator
。
IllegalArgumentException
- 如果 input
為 null
。ImageReaderSpi.canDecodeInput(java.lang.Object)
public static Iterator<ImageReader> getImageReadersByFormatName(String formatName)
ImageReader
的 Iterator
,這些 ImageReader 聲稱能夠解碼指定格式。
formatName
- 套件含非正式格式名稱的 String
(例如 "jpeg" 或 "tiff")。
ImageReader
的 Iterator
。
IllegalArgumentException
- 如果 formatName
為 null
。ImageReaderWriterSpi.getFormatNames()
public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix)
ImageReader
的 Iterator
,這些 ImageReader 聲稱能夠解碼具有給定後綴的檔案。
fileSuffix
- 套件含檔案後綴的 String
(例如 "jpg" 或 "tiff")。
ImageReader
的 Iterator
。
IllegalArgumentException
- 如果 fileSuffix
為 null
。ImageReaderWriterSpi.getFileSuffixes()
public static Iterator<ImageReader> getImageReadersByMIMEType(String MIMEType)
ImageReader
的 Iterator
,這些 ImageReader 聲稱能夠解碼具有給定 MIME 型別的檔案。
MIMEType
- 套件含檔案後綴的 String
(例如 "image/jpeg" 或 "image/x-bmp")。
ImageReader
的 Iterator
。
IllegalArgumentException
- 如果 MIMEType
為 null
。ImageReaderWriterSpi.getMIMETypes()
public static String[] getWriterFormatNames()
String
陣列,該陣列列出當前已註冊 writer 集合所理解的所有非正式格式名稱。
String
陣列。public static String[] getWriterMIMETypes()
String
陣列,該陣列列出當前已註冊 writer 集合所理解的所有 MIME 型別。
String
陣列。public static String[] getWriterFileSuffixes()
String
陣列,該陣列列出與當前已註冊 writer 集合所理解的格式關聯的所有檔案後綴。
String
陣列。public static Iterator<ImageWriter> getImageWritersByFormatName(String formatName)
ImageWriter
的 Iterator
,這些 ImageReader 聲稱能夠編碼指定格式。
formatName
- 套件含非正式格式名稱的 String
(例如 "jpeg" 或 "tiff")。
ImageWriter
的 Iterator
。
IllegalArgumentException
- 如果 formatName
為 null
。ImageReaderWriterSpi.getFormatNames()
public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix)
ImageWriter
的 Iterator
,這些 ImageReader 聲稱能夠編碼具有給定後綴的檔案。
fileSuffix
- 套件含檔案後綴的 String
(例如 "jpg" 或 "tiff")。
ImageWriter
的 Iterator
。
IllegalArgumentException
- 如果 fileSuffix
為 null
。ImageReaderWriterSpi.getFileSuffixes()
public static Iterator<ImageWriter> getImageWritersByMIMEType(String MIMEType)
ImageWriter
的 Iterator
,這些 ImageReader 聲稱能夠編碼具有給定 MIME 型別的檔案。
MIMEType
- 套件含檔案後綴的 String
(例如 "image/jpeg" 或 "image/x-bmp")。
ImageWriter
的 Iterator
。
IllegalArgumentException
- 如果 MIMEType
為 null
。ImageReaderWriterSpi.getMIMETypes()
public static ImageWriter getImageWriter(ImageReader reader)
ImageReader
的 ImageWriter
(如果有);如果此 ImageReader
的外掛程式沒有指定相應的 ImageWriter
,或者給定的 ImageReader
沒有註冊,則返回 null
。可以使用此機制獲取一個 ImageWriter
,它將理解由 ImageReader
產生的非像素元資料(由 IIOMetadata
物件編碼)的內部結構。通過從 ImageReader
獲取此資料並將其傳給使用此方法獲取的 ImageWriter
,客戶端程序可以讀取圖像,以某種方式修改圖像,然後將其寫回,並保留所有的元資料,而不需要理解有關元資料結構甚至圖像格式的任何資訊。注意,此方法返回“首選”writer,它是 javax.imageio.spi.ImageReaderSpi.getImageWriterSpiNames()
返回的列表中列出的第一個 writer。
reader
- 已註冊 ImageReader
的實例。
ImageWriter
或 null。
IllegalArgumentException
- 如果 reader
為 null
。getImageReader(ImageWriter)
,
ImageReaderSpi.getImageWriterSpiNames()
public static ImageReader getImageReader(ImageWriter writer)
ImageWriter
的 ImageReader
(如果有);如果此 ImageWriter
的外掛程式沒有指定相應的 ImageReader
,或者給定 ImageWriter
沒有註冊,則返回 null
。提供此方法主要是為了與 getImageWriter(ImageReader)
對稱。注意,此方法返回“首選”reader,它是 javax.imageio.spi.ImageWriterSpi.getImageReaderSpiNames()
返回的列表中列出的第一個 reader。
writer
- 已註冊 ImageWriter
的實例。
ImageReader
或 null。
IllegalArgumentException
- 如果 writer
為 null
。getImageWriter(ImageReader)
,
ImageWriterSpi.getImageReaderSpiNames()
public static Iterator<ImageWriter> getImageWriters(ImageTypeSpecifier type, String formatName)
ImageWriter
的 Iterator
,這些 ImageWriter 聲稱能夠編碼使用給定格式的、具有給定佈局(使用 ImageTypeSpecifier
指定)的圖像。
type
- 指示將寫入的圖像佈局的 ImageTypeSpecifier
。formatName
- format
的非正式名稱。
ImageWriter
的 Iterator
。
IllegalArgumentException
- 如果任何參數為 null
。ImageWriterSpi.canEncodeImage(ImageTypeSpecifier)
public static Iterator<ImageTranscoder> getImageTranscoders(ImageReader reader, ImageWriter writer)
ImageTranscoder
的 Iterator
,這些 ImageTranscoder 聲稱能夠在給定 ImageReader
和 ImageWriter
的元資料之間進行程式碼轉換。
reader
- 一個 ImageReader
。writer
- 一個 ImageWriter
。
ImageTranscoder
的 Iterator
。
IllegalArgumentException
- 如果 reader
或 writer
為 null
。public static BufferedImage read(File input) throws IOException
BufferedImage
,作為使用 ImageReader
(它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 File
的結果。該 File
被包裹在一個 ImageInputStream
中。如果沒有已註冊的 ImageReader
聲稱能夠讀取得到的串流,則返回 null
。
使用 getUseCache
和 getCacheDirectory
返回的當前快取記憶體設置控制所創建的 ImageInputStream
中的快取記憶體。
注意,不存在將 String
形式的檔案名作為參數的 read
方法;在根據檔案名創建 File
之後使用此方法代替。
此方法不會試圖尋找可以直接從 File
中讀取的 ImageReader
;這可以使用 IIORegistry
和 ImageReaderSpi
來完成。
input
- 將從中讀取資料的 File
。
BufferedImage
,或者返回 null
。
IllegalArgumentException
- 如果 input
為 null
。
IOException
- 如果在讀取過程中發生錯誤。public static BufferedImage read(InputStream input) throws IOException
BufferedImage
,作為使用 ImageReader
(它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 InputStream
的結果。該 InputStream
被包裹在一個 ImageInputStream
中。如果沒有已註冊的 ImageReader
聲稱能夠讀取得到的串流,則返回 null
。
使用 getUseCache
和 getCacheDirectory
返回的當前快取記憶體設置控制所創建的 ImageInputStream
中的快取記憶體。
此方法不會試圖尋找可以直接從 InputStream
中讀取的 ImageReader
;這可以使用 IIORegistry
和 ImageReaderSpi
來完成。
此方法在讀取操作完成後不會 關閉提供的 InputStream
;如果需要,調用者負責關閉該串流。
input
- 將從中讀取資料的 InputStream
。
BufferedImage
,或者返回 null
。
IllegalArgumentException
- 如果 input
為 null
。
IOException
- 如果在讀取過程中發生錯誤。public static BufferedImage read(URL input) throws IOException
BufferedImage
,作為使用 ImageReader
(它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 URL
的結果。InputStream
是從 URL
中獲得的,它被包裹在 ImageInputStream
中。如果沒有已註冊的 ImageReader
聲稱能夠讀取得到的串流,則返回 null
。
使用 getUseCache
和 getCacheDirectory
返回的當前快取記憶體設置控制所創建的 ImageInputStream
中的快取記憶體。
此方法不會試圖尋找可以直接從 URL
中讀取的 ImageReader
;這可以使用 IIORegistry
和 ImageReaderSpi
來完成。
input
- 將從中讀取資料的 URL
。
BufferedImage
,或者返回 null
。
IllegalArgumentException
- 如果 input
為 null
。
IOException
- 如果在讀取過程中發生錯誤。public static BufferedImage read(ImageInputStream stream) throws IOException
BufferedImage
,作為使用 ImageReader
(它是從當前已註冊 ImageReader 中自動選擇的)解碼所提供 ImageInputStream
的結果。如果沒有已註冊的 ImageReader
聲稱能夠讀取該串流,則返回 null
。
與此類別中大多數其他方法不同,此方法在讀取操作完成後會 關閉提供的 ImageInputStream
,除非返回 null
,在這種情況下,此方法不會 關閉該串流。
stream
- 將從中讀取資料的 ImageInputStream
。
BufferedImage
,或者返回 null
。
IllegalArgumentException
- 如果 stream
為 null
。
IOException
- 如果在讀取過程中發生錯誤。public static boolean write(RenderedImage im, String formatName, ImageOutputStream output) throws IOException
ImageWriter
將一個圖像寫入 ImageOutputStream
。從當前串流指針開始將圖像寫入 ImageOutputStream
,並覆寫該點之後的現有串流資料(如果有)。
此方法在寫入操作完成後不會 關閉提供的 ImageOutputStream
;如果需要,調用者負責關閉該串流。
im
- 要寫入的 RenderedImage
。formatName
- 套件含格式非正式名稱的 String
。output
- 將在其中寫入資料的 ImageOutputStream
。
false
。
IllegalArgumentException
- 如果任何參數為 null
。
IOException
- 如果在寫入過程中發生錯誤。public static boolean write(RenderedImage im, String formatName, File output) throws IOException
ImageWriter
將一個圖像寫入 File
。如果已經有一個 File
存在,則丟棄其內容。
im
- 要寫入的 RenderedImage
。formatName
- 套件含格式非正式名稱的 String
。output
- 將在其中寫入資料的 File
。
false
。
IllegalArgumentException
- 如果任何參數為 null
。
IOException
- 如果在寫入過程中發生錯誤。public static boolean write(RenderedImage im, String formatName, OutputStream output) throws IOException
ImageWriter
將一個圖像寫入 OutputStream
。
此方法在寫入操作完成後不會 關閉提供的 OutputStream
;如果需要,調用者負責關閉該串流。
getUseCache
和 getCacheDirectory
返回的當前快取記憶體設置將被用來控制快取記憶體。
im
- 要寫入的 RenderedImage
。formatName
- 套件含格式非正式名稱的 String
。output
- 將在其中寫入資料的 OutputStream
。
false
。
IllegalArgumentException
- 如果任何參數為 null
。
IOException
- 如果在寫入過程中發生錯誤。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。