Java ImageIO 类

10 Sept 2024 | 4 分钟阅读

Java 的 ImageIO 类是一个 final 类,属于 javax.imageio 包。该类提供用于读取和写入图像以及执行简单编码和解码的便捷方法。该类提供了许多与图像处理相关的实用方法。使用该类,我们可以处理流行的图像扩展名,如 .jpg、.bmp、.gif、.png 等。在本节中,我们还将讨论如何使用 Java ImageIO 类读取和写入图像。

Java ImageIO 类方法

方法描述
createImageInputStream(Object input)返回一个 ImageInputStream,它将从给定的 Object 获取输入。
createImageOutputStream(Object output)返回一个 ImageOutputStream,它将发送输出到给定的 Object。
getCacheDirectory()返回由 setCacheDirectory 设置的当前值,如果未进行显式设置,则返回 null。
getImageReader(ImageWriter writer)返回与给定 ImageWriter 对应的 ImageReader,如果存在,则返回 null;如果此 ImageWriter 的插件未指定相应的 ImageReader,或者如果给定的 ImageWriter 未注册,则返回 null。
getImageReaders(Object input)返回一个 Iterator,其中包含所有当前已注册的 ImageReader,它们声称能够解码提供的 Object,通常是 ImageInputStream。
getImageReadersByFormatName(String formatName)返回一个 Iterator,其中包含所有当前已注册的 ImageReader,它们声称能够解码命名格式。
getImageReadersByMIMEType(String MIMEType)返回一个 Iterator,其中包含所有当前已注册的 ImageReader,它们声称能够解码具有给定 MIME 类型的文件。
getImageReadersBySuffix(String fileSuffix)返回一个 Iterator,其中包含所有当前已注册的 ImageReader,它们声称能够解码具有给定后缀的文件。
getImageTranscoders(ImageReader reader, ImageWriter writer)返回一个 Iterator,其中包含所有当前已注册的 ImageTranscoder,它们声称能够转码给定的 ImageReader 和 ImageWriter 的元数据。
getImageWriter(ImageReader reader)返回与给定 ImageReader 对应的 ImageWriter,如果存在,则返回 null;如果此 ImageReader 的插件未指定相应的 ImageWriter,或者如果给定的 ImageReader 未注册,则返回 null。
getImageWriters(ImageTypeSpecifier type, String formatName)返回一个 Iterator,其中包含所有当前已注册的 ImageWriter,它们声称能够使用给定的格式(使用 ImageTypeSpecifier 指定)对给定布局的图像进行编码。
getImageWritersByFormatName(String formatName)返回一个 Iterator,其中包含所有当前已注册的 ImageWriter,它们声称能够编码命名格式。
getImageWritersByMIMEType(String MIMEType)返回一个 Iterator,其中包含所有当前已注册的 ImageWriter,它们声称能够编码具有给定 MIME 类型的文件的。
getImageWritersBySuffix(String fileSuffix)返回一个 Iterator,其中包含所有当前已注册的 ImageWriter,它们声称能够编码具有给定后缀的文件。
getReaderFileSuffixes()返回一个字符串数组,列出与当前已注册的读取器支持的格式相关联的所有文件后缀。
getReaderFormatNames()返回一个字符串数组,列出当前已注册的读取器支持的所有非正式格式名称。
getReaderMIMETypes()返回一个字符串数组,列出当前已注册的读取器支持的所有 MIME 类型。
getUseCache()返回由 setUseCache 设置的当前值,如果未进行显式设置,则返回 true。
getWriterFileSuffixes()返回一个字符串数组,列出与当前已注册的写入器支持的格式相关联的所有文件后缀。
getWriterFormatNames()返回一个字符串数组,列出当前已注册的写入器支持的所有非正式格式名称。
getWriterMIMETypes()返回一个字符串数组,列出当前已注册的写入器支持的所有 MIME 类型。
read(File input)返回一个 BufferedImage,它是通过从当前已注册的 ImageReader 中自动选择一个来解码提供的 File 的结果。
read(ImageInputStream stream)返回一个 BufferedImage,它是通过从当前已注册的 ImageReader 中自动选择一个来解码提供的 ImageInputStream 的结果。
read(InputStream input)返回一个 BufferedImage,它是通过从当前已注册的 ImageReader 中自动选择一个来解码提供的 InputStream 的结果。
read(URL input)返回一个 BufferedImage,它是通过从当前已注册的 ImageReader 中自动选择一个来解码提供的 URL 的结果。
scanForPlugins()扫描应用程序类路径上的插件,加载它们的 خدمة提供者类,并为找到的每个插件向 IIORegistry 注册一个服务提供者实例。
setCacheDirectory(File cacheDirectory)设置创建缓存文件的目录。
setUseCache(boolean useCache)设置一个标志,指示在创建 ImageInputStream 和 ImageOutputStream 时是否使用基于磁盘的缓存文件。
write(RenderedImage im, String formatName, File output)使用支持给定格式的任意 ImageWriter 将图像写入 File。
write(RenderedImage im, String formatName, ImageOutputStream output)使用支持给定格式的任意 ImageWriter 将图像写入 ImageOutputStream。
write(RenderedImage im, String formatName, OutputStream output)使用支持给定格式的任意 ImageWriter 将图像写入 OutputStream。

图像读写示例

ImageIOExample.java

输出

Success

该程序以我们指定的扩展名读写图像。