- java.lang.Object
-
- javax.imageio.IIOParam
-
- javax.imageio.ImageWriteParam
-
- javax.imageio.plugins.jpeg.JPEGImageWriteParam
-
public class JPEGImageWriteParam extends ImageWriteParam
此类添加了在使用内置JPEG编写器插件时设置JPEG量化和霍夫曼表的功能,并请求为图像计算优化的霍夫曼表。 将从内置JPEGImageWriter的getDefaultImageWriteParam方法返回此类的实例。这些添加的主要目的是允许表格的规范用于编码缩写流。 内置的JPEG
ImageWriteParam也将接受普通的ImageWriteParam,在这种情况下,ImageWriteParam将在内部构建必要的表。在任何一种情况下,
ImageWriteParam的质量设置与底层库的含义相同:1.00表示所有1的量化表,0.75表示“标准”,视觉无损量化表,0.00表示所有255的水化表。虽然缩写流的表通常通过首先编写仅包含表的缩写流来指定,但在某些应用程序中,表是提前修复的。 此类允许直接从客户端代码指定表。
通常,这些表在传递给writer的
IIOMetadata对象中指定,并且这些对象中包含的所有表都将写入流中。 如果元数据中未指定表,则写入缩写流。 如果元数据中不包含表,并且JPEGImageWriteParam未指定表,则使用“标准”视觉无损表对缩写流进行编码。 当必须先写入缩写流而不先将任何表写入流时,必须使用此类来指定表。 为了使用此类,传递给writer的元数据对象必须不包含表,并且不能提供流元数据。 有关默认表的更多信息,请参见JPEGQTable和JPEGHuffmanTable。JPEGImageWriteParam的getDefaultWriteParam方法返回的默认值JPEGImageWriteParam不包含任何表。 默认表包含在IIOMetadata返回的默认IIOMetadata对象中。如果元数据确实包含表,则忽略
JPEGImageWriteParam中给出的表。 此外,一旦编写了一组表,只有元数据中的表可以覆盖它们以用于后续写入,无论是相同的流还是不同的流。 要使用此类指定新表,必须调用writer的reset方法。有关内置JPEG插件操作的详细信息,请参阅JPEG metadata format specification and usage notes 。
-
-
字段汇总
-
声明的属性在类 javax.imageio.ImageWriteParam
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, compressionMode, compressionQuality, compressionType, compressionTypes, locale, MODE_COPY_FROM_METADATA, MODE_DEFAULT, MODE_DISABLED, MODE_EXPLICIT, preferredTileSizes, progressiveMode, tileGridXOffset, tileGridYOffset, tileHeight, tileWidth, tilingMode, tilingSet
-
声明的属性在类 javax.imageio.IIOParam
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
-
构造方法摘要
构造方法 构造器 描述 JPEGImageWriteParam(Locale locale)构造一个JPEGImageWriteParam。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 booleanareTablesSet()如果当前设置了表,则返回true。JPEGHuffmanTable[]getACHuffmanTables()返回最近一次调用setEncodeTables上设置的AC Huffman表数组的副本,如果当前未设置表,则null。JPEGHuffmanTable[]getDCHuffmanTables()返回最近一次调用setEncodeTables上设置的DC Huffman表数组的副本,如果当前未设置表,则null。booleangetOptimizeHuffmanTables()返回传递到最近一次调用价值setOptimizeHuffmanTables,或false如果setOptimizeHuffmanTables从未被调用。JPEGQTable[]getQTables()返回最近一次调用setEncodeTables上设置的量化表数组的副本,如果当前未设置表,则null。booleanisCompressionLossless()返回false因为JPEG插件仅支持有损压缩。voidsetEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)设置量化和Huffman表以用于编码缩写流。voidsetOptimizeHuffmanTables(boolean optimize)告诉作者在写入过程中为图像生成优化的霍夫曼表。voidunsetCompression()删除任何先前的压缩质量设置。voidunsetEncodeTables()删除当前设置的所有量化和Huffman表。-
声明方法的类 javax.imageio.ImageWriteParam
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, getBitRate, getCompressionMode, getCompressionQuality, getCompressionQualityDescriptions, getCompressionQualityValues, getCompressionType, getCompressionTypes, getLocale, getLocalizedCompressionTypeName, getPreferredTileSizes, getProgressiveMode, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTilingMode, setCompressionMode, setCompressionQuality, setCompressionType, setProgressiveMode, setTiling, setTilingMode, unsetTiling
-
声明方法的类 javax.imageio.IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
-
-
-
构造方法详细信息
-
JPEGImageWriteParam
public JPEGImageWriteParam(Locale locale)
构造一个JPEGImageWriteParam。 平铺不受支持。 支持渐进式编码。 默认渐进模式为MODE_DISABLED。 支持单一形式的压缩,名为“JPEG”。 默认压缩质量为0.75。- 参数
-
locale-一个Locale由超类用于本地化压缩类型名称和质量描述,或null。
-
-
方法详细信息
-
unsetCompression
public void unsetCompression()
删除任何先前的压缩质量设置。默认实现将压缩质量重置为
0.75F。- 重写:
-
unsetCompression在类ImageWriteParam - 异常
-
IllegalStateException- 如果压缩模式不是MODE_EXPLICIT。 - 另请参见:
-
ImageWriteParam.setCompressionType(java.lang.String),ImageWriteParam.setCompressionQuality(float)
-
isCompressionLossless
public boolean isCompressionLossless()
返回false因为JPEG插件仅支持有损压缩。- 重写:
-
isCompressionLossless类ImageWriteParam - 结果
-
false。 - 异常
-
IllegalStateException- 如果压缩模式不是MODE_EXPLICIT。
-
areTablesSet
public boolean areTablesSet()
如果当前设置了表,则返回true。- 结果
-
true如果存在表格。
-
setEncodeTables
public void setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
设置量化和Huffman表以用于编码缩写流。 每种类型最多可以有4个表。 如果在元数据中指定了表,则忽略这些表。 所有参数必须为非null。 两个Huffman表数组必须具有相同数量的元素。 假设元数据中的帧和扫描头中的表说明符等同于这些数组中的索引。 参数数组由此方法复制。- 参数
-
qTables- 量化表对象的数组。 -
DCHuffmanTables- 霍夫曼表对象的数组。 -
ACHuffmanTables- 霍夫曼表对象的数组。 - 异常
-
IllegalArgumentException- 如果任何参数为null或具有4个以上的元素,或者DC和AC表的数量不同。 - 另请参见:
-
unsetEncodeTables()
-
unsetEncodeTables
public void unsetEncodeTables()
删除当前设置的所有量化和Huffman表。
-
getQTables
public JPEGQTable[] getQTables()
返回最近一次调用setEncodeTables上设置的量化表数组的副本,如果当前未设置表,则null。
-
getDCHuffmanTables
public JPEGHuffmanTable[] getDCHuffmanTables()
返回最近一次调用setEncodeTables上设置的DC Huffman表数组的副本,如果当前未设置表,则null。- 结果
-
JPEGHuffmanTable对象的数组,或null。 - 另请参见:
-
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
getACHuffmanTables
public JPEGHuffmanTable[] getACHuffmanTables()
返回最近一次调用setEncodeTables上设置的AC Huffman表数组的副本,如果当前未设置表,则null。- 结果
-
JPEGHuffmanTable对象的数组,或null。 - 另请参见:
-
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
setOptimizeHuffmanTables
public void setOptimizeHuffmanTables(boolean optimize)
告诉作者在写入过程中为图像生成优化的霍夫曼表。 默认值为false。 如果此标志设置为true,则它将覆盖元数据中指定的所有表。 请注意,这意味着使用此标志设置为true写入的任何图像将始终包含霍夫曼表。- 参数
-
optimize- 一个布尔值,指示在写入时是否生成优化的霍夫曼表。 - 另请参见:
-
getOptimizeHuffmanTables()
-
getOptimizeHuffmanTables
public boolean getOptimizeHuffmanTables()
返回传递到最近一次调用价值setOptimizeHuffmanTables,或false如果setOptimizeHuffmanTables从未被调用。- 结果
-
true如果true将生成优化的霍夫曼表。 - 另请参见:
-
setOptimizeHuffmanTables(boolean)
-
-