javax.imageio
类 ImageIO

java.lang.Object
  继承者 javax.imageio.ImageIO

public final class ImageIO
   
   
   
extends Object

该类包含一些用来查找 ImageReaderImageWriter 以及执行简单编码和解码的静态便捷方法。


方法摘要
static ImageInputStreamcreateImageInputStream(Object input)
          返回一个 ImageInputStream,它将从给定 Object 中获取输入。
static ImageOutputStreamcreateImageOutputStream(Object output)
          返回一个 ImageOutputStream,它将其输出发送到给定 Object
static FilegetCacheDirectory()
          返回由 setCacheDirectory 设置的当前值;如果没有显式设置该值,则返回 null
static ImageReadergetImageReader(ImageWriter writer)
          返回对应于给定 ImageWriterImageReader(如果有);如果此 ImageWriter 的插件没有指定相应的 ImageReader,或者给定 ImageWriter 没有注册,则返回 null
static Iterator<ImageReader>getImageReaders(Object input)
          返回包含所有当前已注册 ImageReaderIterator,这些 ImageReader 声称能够解码所提供的 Object(通常是一个 ImageInputStream)。
static Iterator<ImageReader>getImageReadersByFormatName(String formatName)
          返回包含所有当前已注册 ImageReaderIterator,这些 ImageReader 声称能够解码指定格式。
static Iterator<ImageReader>getImageReadersByMIMEType(String MIMEType)
          返回包含所有当前已注册 ImageReaderIterator,这些 ImageReader 声称能够解码具有给定 MIME 类型的文件。
static Iterator<ImageReader>getImageReadersBySuffix(String fileSuffix)
          返回包含所有当前已注册 ImageReaderIterator,这些 ImageReader 声称能够解码具有给定后缀的文件。
static Iterator<ImageTranscoder>getImageTranscoders(ImageReader reader, ImageWriter writer)
          返回包含所有当前已注册 ImageTranscoderIterator,这些 ImageTranscoder 声称能够在给定 ImageReaderImageWriter 的元数据之间进行代码转换。
static ImageWritergetImageWriter(ImageReader reader)
          返回对应于给定 ImageReaderImageWriter(如果有);如果此 ImageReader 的插件没有指定相应的 ImageWriter,或者给定的 ImageReader 没有注册,则返回 null
static Iterator<ImageWriter>getImageWriters(ImageTypeSpecifier type, String formatName)
          返回包含所有当前已注册 ImageWriterIterator,这些 ImageWriter 声称能够编码使用给定格式的、具有给定布局(使用 ImageTypeSpecifier 指定)的图像。
static Iterator<ImageWriter>getImageWritersByFormatName(String formatName)
          返回包含所有当前已注册 ImageWriterIterator,这些 ImageReader 声称能够编码指定格式。
static Iterator<ImageWriter>getImageWritersByMIMEType(String MIMEType)
          返回包含所有当前已注册 ImageWriterIterator,这些 ImageReader 声称能够编码具有给定 MIME 类型的文件。
static Iterator<ImageWriter>getImageWritersBySuffix(String fileSuffix)
          返回包含所有当前已注册 ImageWriterIterator,这些 ImageReader 声称能够编码具有给定后缀的文件。
static String[]getReaderFileSuffixes()
          返回一个 String 数组,该数组列出与当前已注册 reader 集合所理解的格式关联的所有文件后缀。
static String[]getReaderFormatNames()
          返回一个 String 数组,该数组列出被当前已注册 reader 集合所理解的所有非正式格式名称。
static String[]getReaderMIMETypes()
          返回一个 String 数组,该数组列出被当前已注册 reader 集合所理解的所有 MIME 类型。
static booleangetUseCache()
          返回由 setUseCache 设置的当前值;如果没有显式设置该值,则返回 true
static String[]getWriterFileSuffixes()
          返回一个 String 数组,该数组列出与当前已注册 writer 集合所理解的格式关联的所有文件后缀。
static String[]getWriterFormatNames()
          返回一个 String 数组,该数组列出当前已注册 writer 集合所理解的所有非正式格式名称。
static String[]getWriterMIMETypes()
          返回一个 String 数组,该数组列出当前已注册 writer 集合所理解的所有 MIME 类型。
static BufferedImageread(File input)
          返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 ImageReader 中自动选择的)解码所提供 File 的结果。
static BufferedImageread(ImageInputStream stream)
          返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 ImageReader 中自动选择的)解码所提供 ImageInputStream 的结果。
static BufferedImageread(InputStream input)
          返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 ImageReader 中自动选择的)解码所提供 InputStream 的结果。
static BufferedImageread(URL input)
          返回一个 BufferedImage,作为使用 ImageReader(它是从当前已注册 ImageReader 中自动选择的)解码所提供 URL 的结果。
static voidscanForPlugins()
          扫描应用程序类路径上的插件,加载其服务提供者类,并使用 IIORegistry 为每一个找到的插件注册一个服务提供者实例。
static voidsetCacheDirectory(File cacheDirectory)
          设置将在其中创建缓存文件的目录。
static voidsetUseCache(boolean useCache)
          设置一个标记,指示在创建 ImageInputStreamImageOutputStream 时是否应该使用基于磁盘的缓存文件。
static booleanwrite(RenderedImage im, String formatName, File output)
          使用支持给定格式的任意 ImageWriter 将一个图像写入 File
static booleanwrite(RenderedImage im, String formatName, ImageOutputStream output)
          使用支持给定格式的任意 ImageWriter 将一个图像写入 ImageOutputStream
static booleanwrite(RenderedImage im, String formatName, OutputStream output)
          使用支持给定格式的任意 ImageWriter 将一个图像写入 OutputStream
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

方法详细信息

scanForPlugins

public static void scanForPlugins()
扫描应用程序类路径上的插件,加载其服务提供者类,并使用 IIORegistry 为每一个找到的插件注册一个服务提供者实例。

需要此方法是因为应用程序类路径在理论上是可以更改的,或者说附加的插件可以变得可用。不需要每次调用 API 时都重新扫描类路径,可以只在第一次调用时自动扫描。客户端可以调用此方法来启动重新扫描。因此,只有在运行时使新插件动态可用的复杂应用程序才需要调用此方法。

上下文 ClassLoadergetResources 方法被用来沿应用程序类路径查找包含名为 META-INF/services/javax.imageio.spi.classname 的文件的 JAR 文件,其中 classnameImageReaderSpiImageWriterSpiImageTranscoderSpiImageInputStreamSpiImageOutputStreamSpi 之一。

所查找文件的内容表示实际实现类的名称,这些类实现上述服务提供者接口;然后可以使用默认类加载器加载每个类并实例化每个类的实例,然后将其放入注册表中供以后获取。

确切的搜索位置集合取决于 Java 运行时环境的实现。

另请参见:
ClassLoader.getResources(java.lang.String)

setUseCache

public static void setUseCache(boolean useCache)
设置一个标记,指示在创建 ImageInputStreamImageOutputStream 时是否应该使用基于磁盘的缓存文件。

在从标准 InputStream 中读取数据时,有必要在缓存中保存以前读取的信息,因为底层流不允许重新读取数据。类似地,在将数据写入标准 OutputStream 时,可以使用某一缓存来允许以前写入的值在被刷新并转到最终目标前可以被更改。

该缓存可以驻留在主存或磁盘上。如果将此标记设置为 false,则不允许将磁盘用于将来的流,这在使用小图像时很有利,因为可以免除创建和销毁文件所带来的开销。

在启动时,该值被设置为 true

参数:
useCache - 指示是否应使用缓存文件(在可选的情况下)的 boolean
另请参见:
getUseCache()

getUseCache

public static boolean getUseCache()
返回由 setUseCache 设置的当前值;如果没有显式设置该值,则返回 true

返回:
如果可以将基于磁盘的缓存用于 ImageInputStreamImageOutputStream,则返回 true。
另请参见:
setUseCache(boolean)

setCacheDirectory

public static void setCacheDirectory(File cacheDirectory)
设置将在其中创建缓存文件的目录。值为 null 表示将使用与系统有关的默认临时文件目录。如果 getUseCache 返回 false,则忽略此值。

参数:
cacheDirectory - 指定目录的 File
抛出:
SecurityException - 如果安全管理器拒绝对该目录的访问。
IllegalArgumentException - 如果 cacheDir 为非 null 但它不是一个目录。
另请参见:
File.createTempFile(String, String, File), getCacheDirectory()

getCacheDirectory

public static File getCacheDirectory()
返回由 setCacheDirectory 设置的当前值;如果没有显式设置该值,则返回 null

返回:
一个 File,表示将在其中创建缓存文件的目录;null 指示与系统有关的默认临时文件目录。
另请参见:
setCacheDirectory(java.io.File)

createImageInputStream

public static ImageInputStream createImageInputStream(Object input)
                                               throws IOException
返回一个 ImageInputStream,它将从给定 Object 中获取输入。查询使用 IIORegistry 类注册的 ImageInputStreamSpi 集合,能够从所提供的对象中获取输入的第一个 ImageInputStreamSpi 将被用来创建返回的 ImageInputStream。如果没有合适的 ImageInputStreamSpi 存在,则返回 null

getUseCachegetCacheDirectory 返回的当前缓存设置将被用来控制缓存。

参数:
input - 用作输入源的 Object,比如 File、可读取的 RandomAccessFileInputStream
返回:
一个 ImageInputStreamnull
抛出:
IllegalArgumentException - 如果 inputnull
IOException - 如果需要缓存文件但无法创建。
另请参见:
ImageInputStreamSpi