模块 java.desktop

类 JPEGImageWriteParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageWriteParam
javax.imageio.plugins.jpeg.JPEGImageWriteParam

public class JPEGImageWriteParam extends ImageWriteParam
此类添加了在使用内置 JPEG 编写器插件时设置 JPEG 量化和霍夫曼表的功能,并请求为图像计算优化的霍夫曼表。此类的实例将从内置 JPEG ImageWritergetDefaultImageWriteParam 方法返回。

这些添加的主要目的是允许表的规范用于编码缩略流。内置的 JPEG 编写器也将接受普通的 ImageWriteParam ,在这种情况下,编写器将在内部构建必要的表格。

在任何一种情况下,ImageWriteParam 中的质量设置与底层库具有相同的含义:1.00 表示全 1 的量化表,0.75 表示“标准”、视觉上无损的量化表,0.00 表示全 255 的量化表。

虽然缩略流的表通常是通过首先编写仅包含表的缩略流来指定的,但在某些应用程序中,表是提前固定的。此类允许直接从客户端代码指定表。

通常,这些表在传递给编写器的 IIOMetadata 对象中指定,并且这些对象中包含的任何表都写入流中。如果元数据中未指定任何表,则会写入一个缩略流。如果元数据中不包含任何表并且在 JPEGImageWriteParam 中未指定任何表,则使用“标准”视觉无损表对缩略流进行编码。当必须先写入缩写流而不先将任何表写入流时,此类对于指定表是必需的。为了使用这个类,传递给编写器的元数据对象不能包含表,也不能提供流元数据。有关默认表的更多信息,请参阅 JPEGQTable JPEGHuffmanTable

作者的 getDefaultWriteParam 方法返回的默认 JPEGImageWriteParam 不包含任何表。默认表包含在作者返回的默认 IIOMetadata 对象中。

如果元数据确实包含表格,则 JPEGImageWriteParam 中给出的表格将被忽略。此外,一旦一组表被写入,只有元数据中的表可以覆盖它们以进行后续写入,无论是写入相同的流还是不同的流。为了使用此类指定新表,必须调用编写器的reset 方法。

有关内置 JPEG 插件操作的更多信息,请参阅 JPEG 元数据格式规范和使用说明