Package javax.imageio
可以使用ImageIO
类的静态方法执行许多常见的图像I/O操作。
此包含有关描述图像文件内容的基本类和接口,包括元数据和缩略图(IIOImage
);用于控制图像读取过程(ImageReader
、ImageReadParam
和ImageTypeSpecifier
)和图像写入过程(ImageWriter
和ImageWriteParam
);用于在不同格式之间进行转码(ImageTranscoder
)以及用于报告错误(IIOException
)。
所有javax.imageio的实现都提供以下标准图像格式插件:
图像格式 | 读取 | 写入 | 注释 | 元数据 |
---|---|---|---|---|
BMP | 是 | 是 | 无 | BMP元数据格式 |
GIF | 是 | 是 | GIF插件注释 | GIF元数据格式 |
JPEG | 是 | 是 | 无 | JPEG元数据格式 |
PNG | 是 | 是 | 无 | PNG元数据格式 |
TIFF | 是 | 是 | TIFF插件注释 | TIFF元数据格式 |
WBMP | 是 | 是 | 无 | WBMP元数据格式 |
标准插件注释
GIF图像格式的标准插件
ImageIO为图形交换格式(GIF)图像格式提供ImageReader
和ImageWriter
插件。这些是“标准”GIF插件,指的是包含在JRE中的插件,与标准扩展或第三方插件不同。以下注释和元数据规范适用于标准插件。
写入GIF图像
GIF图像写入插件保证符合以下要求的图像进行无损写入:- 波段数为1;
- 每个样本的位数不大于8;
- 颜色分量的大小不大于8。
默认情况下,GIF写入插件创建版本“89a”的图像。可以通过在流元数据中明确设置版本来更改为“87a”(请参阅GIF流元数据格式规范)。
GIF写入插件支持通过ImageWriter
类中定义的标准序列写入方法创建动画GIF图像。
如果满足以下条件之一,则会将全局调色板写入输出流:
- 提供包含GlobalColorTable元素的流元数据;
- 正在写入序列,并且为序列中的第一个图像提供包含LocalColorTable元素的图像元数据;
- 未提供图像元数据或图像元数据不包含LocalColorTable元素。
在第一种情况下,使用流元数据中的全局调色板,在第二种情况下,使用图像元数据中的局部调色板,而在第三种情况下,从(第一个)图像的ColorModel或SampleModel创建全局调色板。
仅当向写入器提供包含LocalColorTable元素的图像元数据,或者未向写入器提供图像元数据且从图像本身生成的局部调色板不等于全局调色板时,才会将局部调色板写入输出流。
仅当向写入器提供包含GraphicControlExtension元素的图像元数据,或者未提供图像元数据且从图像生成的局部调色板需要透明索引时,才会将Graphic Control Extension块写入输出流。应用程序、纯文本和注释扩展块仅在通过图像元数据提供给写入器时才会被写入。
可以通过提供的ImageWriteParam
实例的渐进模式来控制隔行图像的写入。如果渐进模式为MODE_DISABLED
,则将写入非隔行图像。如果渐进模式为MODE_DEFAULT
,则将写入隔行图像。如果渐进模式为MODE_COPY_FROM_METADATA
,则使用元数据设置(如果提供了元数据设置,否则将写入隔行图像)。
GIF图像写入插件支持从写入器提供的元数据设置输出流元数据,格式可以是本机GIF流元数据格式javax_imageio_gif_stream_1.0或标准元数据格式javax_imageio_1.0,并且支持从写入器提供的元数据设置输出图像元数据,格式可以是本机GIF图像元数据格式javax_imageio_gif_image_1.0或标准元数据格式javax_imageio_1.0。标准元数据格式到GIF本机流和图像元数据格式的映射在这里的表中给出。
- 自:
- 1.4
-
ClassDescription用于表示读取和写入操作运行时失败的异常类。一个简单的容器类,用于聚合图像、一组缩略图(预览图像)和与图像关联的元数据对象。所有描述流应如何解码或编码的类的超类。由可以确定
IIOParam
对象设置的对象实现的接口,可以通过向用户提供GUI来获取值,或通过其他方式获取值。包含用于定位ImageReader
和ImageWriter
,以及执行简单编码和解码的静态便利方法的类。图像解析和解码的抽象超类。描述如何解码流的类。提供元数据转码功能的接口。允许方便地指定图像的格式(特别是其SampleModel
和ColorModel
)的类。描述如何编码流的类。编码和写入图像的抽象超类。