|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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[] |
getReaderFormatNames()
返回列出被当前已注册 reader 的集合所理解的所有非正式格式名称的 String 数组。 |
static String[] |
getReaderMIMETypes()
返回列出被当前已注册 reader 集合所理解的所有 MIME 类型的 String 数组。 |
static boolean |
getUseCache()
返回由 setUseCache 设置的当前值,如果没有显式设置该值,则返回 true 。 |
static String[] |
getWriterFormatNames()
返回列出被当前已注册 writer 集合所理解的所有非正式格式名称的 String 数组。 |
static String[] |
getWriterMIMETypes()
返回列出被当前已注册 writer 集合所理解的所有 MIME 类型的 String 数组。 |
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 运行时环境的实现。
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
- 用作输入源(比如 File
、可读取的 RandomAccessFile
或 InputStream
)的 Object
。
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
- 用作输出目标(比如 File
、可写入的 RandomAccessFile
或 OutputStream
)的 Object
。
ImageOutputStream
或 null
。
IllegalArgumentException
- 如果 output
为 null
。
IOException
- 如果需要缓存文件但无法创建。ImageOutputStreamSpi
public static String[] getReaderFormatNames()
String
数组。
String
数组。public static String[] getReaderMIMETypes()
String
数组。
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
- 包含非正式格式名称(例如 "jpeg" 或 "tiff")的 String
。
ImageReader
的 Iterator
。
IllegalArgumentException
- 如果 formatName
为 null
。ImageReaderWriterSpi.getFormatNames()
public static Iterator<ImageReader> getImageReadersBySuffix(String fileSuffix)
ImageReader
的 Iterator
,这些 ImageReader 声称能够解码具有给定后缀的文件。
fileSuffix
- 包含文件后缀(例如 "jpg" 或 "tiff")的 String
。
ImageReader
的 Iterator
。
IllegalArgumentException
- 如果 fileSuffix
为 null
。ImageReaderWriterSpi.getFileSuffixes()
public static Iterator<ImageReader> getImageReadersByMIMEType(String MIMEType)
ImageReader
的 Iterator
,这些 ImageReader 声称能够解码具有给定 MIME 类型的文件。
MIMEType
- 包含文件后缀(例如 "image/jpeg" 或 "image/x-bmp")的 String
。
ImageReader
的 Iterator
。
IllegalArgumentException
- 如果 MIMEType
为 null
。ImageReaderWriterSpi.getMIMETypes()
public static String[] getWriterFormatNames()
String
数组。
String
数组。public static String[] getWriterMIMETypes()
String
数组。
String
数组。public static Iterator<ImageWriter> getImageWritersByFormatName(String formatName)
ImageWriter
的 Iterator
,这些 ImageReader 声称能够对指定格式进行编码。
formatName
- 包含非正式格式名称(例如 "jpeg" 或 "tiff")的 String
。
ImageWriter
的 Iterator
。
IllegalArgumentException
- 如果 formatName
为 null
。ImageReaderWriterSpi.getFormatNames()
public static Iterator<ImageWriter> getImageWritersBySuffix(String fileSuffix)
ImageWriter
的 Iterator
,这些 ImageReader 声称能够对具有给定后缀的文件进行编码。
fileSuffix
- 包含文件后缀(例如 "jpg" 或 "tiff")的 String
。
ImageWriter
的 Iterator
。
IllegalArgumentException
- 如果 fileSuffix
为 null
。ImageReaderWriterSpi.getFileSuffixes()
public static Iterator<ImageWriter> getImageWritersByMIMEType(String MIMEType)
ImageWriter
的 Iterator
,这些 ImageReader 声称能够对具有给定 MIME 类型的文件进行编码。
MIMEType
- 包含文件后缀(例如 "image/jpeg" 或 "image/x-bmp")的 String
。
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
来完成。
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
。
stream
- 将从中读取数据的 ImageInputStream
。
BufferedImage
;或者 null
。
IllegalArgumentException
- 如果 stream
为 null
。
IOException
- 如果在读取过程中发生错误。public static boolean write(RenderedImage im, String formatName, ImageOutputStream output) throws IOException
ImageWriter
将一个图像写入 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
。
来自 getUseCache
和 getCacheDirectory
的当前缓存设置将被用来控制缓存。
im
- 要写入的 RenderedImage
。formatName
- 包含格式的非正式名称的 String
。output
- 将在其中写入数据的 OutputStream
。
false
。
IllegalArgumentException
- 如果任何参数为 null
。
IOException
- 如果在写入过程中发生错误。
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。