所有类


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[]getReaderFormatNames()
          返回列出被当前已注册 reader 的集合所理解的所有非正式格式名称的 String 数组。
static String[]getReaderMIMETypes()
          返回列出被当前已注册 reader 集合所理解的所有 MIME 类型的 String 数组。
static booleangetUseCache()
          返回由 setUseCache 设置的当前值,如果没有显式设置该值,则返回 true
static String[]getWriterFormatNames()
          返回列出被当前已注册 writer 集合所理解的所有非正式格式名称的 String 数组。
static String[]getWriterMIMETypes()
          返回列出被当前已注册 writer 集合所理解的所有 MIME 类型的 String 数组。
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 - 用作输入源(比如 File、可读取的 RandomAccessFileInputStream)的 Object
返回:
一个 ImageInputStreamnull
抛出:
IllegalArgumentException - 如果 inputnull
IOException - 如果需要缓存文件但无法创建。
另请参见:
ImageInputStreamSpi

createImageOutputStream

public static ImageOutputStream createImageOutputStream(Object output)
                                                 throws IOException
返回一个 ImageOutputStream,它将其输出发送到给定 Object。查询 IIORegistry 中注册的 ImageOutputStreamSpi 的集合,能够从所提供对象发送输出的第一个 ImageOutputStreamSpi 被用来创建返回的 ImageOutputStream。如果没有合适的 ImageOutputStreamSpi 存在,则返回 null

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

参数:
output - 用作输出目标(比如 File、可写入的 RandomAccessFileOutputStream)的 Object
返回:
一个 ImageOutputStreamnull
抛出:
IllegalArgumentException - 如果 outputnull
IOException - 如果需要缓存文件但无法创建。
另请参见:
ImageOutputStreamSpi