java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageReadParam
javax.imageio.plugins.jpeg.JPEGImageReadParam
此类在使用内置JPEG阅读器插件时添加了设置JPEG量化和霍夫曼表的功能。从内置JPEG
ImageReader
的getDefaultImageReadParam
方法将返回此类的实例。
这些添加的唯一目的是允许指定用于解码缩略流的表。内置JPEG阅读器还将接受普通的ImageReadParam
,这对于解码非缩略流已足够。
虽然通常通过首先读取仅包含表的另一个缩略流来获取缩略流的表,在某些应用程序中,表是提前固定的。此类允许直接从客户端代码指定表。如果流中没有指定表,也没有在JPEGImageReadParam
中指定表,则假定流使用“标准”视觉无损表。有关默认表的更多信息,请参阅JPEGQTable
和JPEGHuffmanTable
。
由内置JPEG阅读器的getDefaultReadParam
方法返回的默认JPEGImageReadParam
不包含表。可以从表类JPEGQTable
和JPEGHuffmanTable
获取默认表。
如果流包含表,则会忽略JPEGImageReadParam
中给定的表。此外,如果流中的第一个图像包含表而后续图像不包含表,则第一个图像中给定的表将用于所有缩略图像。一旦从流中读取了表,只能通过随后从同一流中读取的表来覆盖它们。为了指定新表,必须调用阅读器的setInput
方法来更改流。
请注意,此类不提供获取流中找到的表的方法。可以通过查看阅读器返回的IIOMetadata对象从流中提取这些表。
有关内置JPEG插件操作的更多信息,请参阅JPEG元数据格式规范和使用说明。
-
Field Summary
Fields declared in class javax.imageio.ImageReadParam
canSetSourceRenderSize, destination, destinationBands, minProgressivePass, numProgressivePasses, sourceRenderSize
Fields declared in class javax.imageio.IIOParam
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
如果当前已设置表,则返回true
。返回最近一次调用setDecodeTables
时设置的AC霍夫曼表数组的副本,如果当前未设置表,则返回null
。返回最近一次调用setDecodeTables
时设置的DC霍夫曼表数组的副本,如果当前未设置表,则返回null
。返回最近一次调用setDecodeTables
时设置的量化表数组的副本,如果当前未设置表,则返回null
。void
setDecodeTables
(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables) 设置用于解码缩略流的量化和霍夫曼表。void
移除当前设置的任何量化和霍夫曼表。Methods declared in class javax.imageio.ImageReadParam
canSetSourceRenderSize, getDestination, getDestinationBands, getSourceMaxProgressivePass, getSourceMinProgressivePass, getSourceNumProgressivePasses, getSourceRenderSize, setDestination, setDestinationBands, setSourceProgressivePasses, setSourceRenderSize
Methods declared in class javax.imageio.IIOParam
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
-
Constructor Details
-
JPEGImageReadParam
public JPEGImageReadParam()构造一个JPEGImageReadParam
。
-
-
Method Details
-
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
public void unsetDecodeTables()移除当前设置的任何量化和霍夫曼表。- 参见:
-
getQTables
返回最近一次调用setDecodeTables
时设置的量化表数组的副本,如果当前未设置表,则返回null
。- 返回:
-
一个
JPEGQTable
对象数组,或null
。 - 参见:
-
getDCHuffmanTables
返回最近一次调用setDecodeTables
时设置的DC霍夫曼表数组的副本,如果当前未设置表,则返回null
。- 返回:
-
一个
JPEGHuffmanTable
对象数组,或null
。 - 参见:
-
getACHuffmanTables
返回最近一次调用setDecodeTables
时设置的AC霍夫曼表数组的副本,如果当前未设置表,则返回null
。- 返回:
-
一个
JPEGHuffmanTable
对象数组,或null
。 - 参见:
-