- java.lang.Object
-
- javax.imageio.IIOParam
-
- javax.imageio.ImageReadParam
-
- javax.imageio.plugins.jpeg.JPEGImageReadParam
-
public class JPEGImageReadParam extends ImageReadParam
此类增加了在使用内置JPEG阅读器插件时设置JPEG量化和霍夫曼表的功能。 该类的一个实例将从内置的JPEGImageReader
的getDefaultImageReadParam
方法返回。这些添加的唯一目的是允许用于解码缩写流的表的规范。 内置的JPEG阅读器也可以接受普通的
ImageReadParam
,这对于解码非缩写的流是足够的。虽然缩写流的表格通常是通过首先阅读另一个仅包含表格的缩略图流而获得的,但在某些应用程序中,表格提前固定。 该类允许从客户端代码直接指定表。 如果在流中或
JPEGImageReadParam
未指定任何表,则该流被推定为使用“标准”视觉无损表。 有关默认表的更多信息,请参阅JPEGQTable
和JPEGHuffmanTable
。内置JPEG读取器的
getDefaultReadParam
方法返回的默认值JPEGImageReadParam
不包含表。 默认表可以从表JPEGQTable
和JPEGHuffmanTable
等级获得。如果流包含表,则忽略
JPEGImageReadParam
中给出的表。 此外,如果流中的第一图像包含表,并且后续的图像不包含表,则在第一图像中给出的表用于所有缩写图像。 一旦从流中读取表,只能由随后从同一个流读取的表覆盖它们。 为了指定新表,必须调用读者的setInput
方法来更改流。请注意,此类不提供获取流中找到的表的方法。 这些可以通过查阅读者返回的IIOMetadata对象从流中提取出来。
有关内置JPEG插件的操作的详细信息,请参阅JPEG metadata format specification and usage notes 。
-
-
Field Summary
-
Fields inherited from class javax.imageio.IIOParam
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
Fields inherited from class javax.imageio.ImageReadParam
canSetSourceRenderSize, destination, destinationBands, minProgressivePass, numProgressivePasses, sourceRenderSize
-
-
构造方法摘要
构造方法 Constructor 描述 JPEGImageReadParam()
构造一个JPEGImageReadParam
。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 boolean
areTablesSet()
如果表当前设置,则返回true
。JPEGHuffmanTable[]
getACHuffmanTables()
返回在最近调用setDecodeTables
或null
如果表当前未设置)时设置的AC Huffman表数组的副本。JPEGHuffmanTable[]
getDCHuffmanTables()
返回最近调用setDecodeTables
设置的DC Huffman表数组的副本,如果表当前未设置,则null
。JPEGQTable[]
getQTables()
返回在最近调用的setDecodeTables
或null
如果表当前未设置)时设置的量化表数组的副本。void
setDecodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
设置用于解码缩写流的量化和霍夫曼表。void
unsetDecodeTables()
删除当前设置的任何量化和霍夫曼表。-
Methods inherited from class javax.imageio.IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setSourceBands, setSourceRegion, setSourceSubsampling
-
Methods inherited from class javax.imageio.ImageReadParam
canSetSourceRenderSize, getDestination, getDestinationBands, getSourceMaxProgressivePass, getSourceMinProgressivePass, getSourceNumProgressivePasses, getSourceRenderSize, setDestination, setDestinationBands, setDestinationType, setSourceProgressivePasses, setSourceRenderSize
-
-
-
-
方法详细信息
-
areTablesSet
public boolean areTablesSet()
如果表当前设置,则返回true
。- 结果
-
true
如果表存在。
-
setDecodeTables
public void setDecodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
设置用于解码缩写流的量化和霍夫曼表。 每种类型最多可能有4个表。 一旦在流中遇到表,就忽略这些表。 所有参数必须为非null
。 霍夫曼表的两个阵列必须具有相同数量的元素。 流中的帧和扫描头中的表格符号被假定为等同于这些数组中的索引。 参数数组由此方法复制。- 参数
-
qTables
- 量化表对象的数组。 -
DCHuffmanTables
- 一个霍夫曼表对象的数组。 -
ACHuffmanTables
- 一个霍夫曼表对象的数组。 - 异常
-
IllegalArgumentException
- 如果任何参数是null
,有超过4个元素,或者DC和AC表的数量不同。 - 另请参见:
-
unsetDecodeTables()
-
unsetDecodeTables
public void unsetDecodeTables()
删除当前设置的任何量化和霍夫曼表。
-
getQTables
public JPEGQTable[] getQTables()
返回最近调用setDecodeTables
设置的量化表数组的副本,如果表当前未设置,则null
。
-
getDCHuffmanTables
public JPEGHuffmanTable[] getDCHuffmanTables()
返回在最近调用setDecodeTables
或null
如果表当前未设置)时设置的DC Huffman表阵列的副本。- 结果
-
一组
JPEGHuffmanTable
对象,或null
。 - 另请参见:
-
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
getACHuffmanTables
public JPEGHuffmanTable[] getACHuffmanTables()
返回最近调用setDecodeTables
或null
如果表当前未设置)时设置的AC Huffman表数组的副本。- 结果
-
一组
JPEGHuffmanTable
对象,或null
。 - 另请参见:
-
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
-
-