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