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