javax.imageio.plugins.jpeg

java.lang.Object
  继承者 javax.imageio.IIOParam
      继承者 javax.imageio.ImageReadParam
          继承者 javax.imageio.plugins.jpeg.JPEGImageReadParam

public class JPEGImageReadParam
     
extends ImageReadParam

此类添加了使用内置 JPEG reader 插件时设置 JPEG 量化表和 Huffman 表的能力。此类的实例将从内置 JPEG ImageReadergetDefaultImageReadParam 方法返回。

这些新增功能的唯一目的是允许在解码简写流中使用表的规范。内置 JPEG reader 还将接受普通 ImageReadParam,这足以满足解码非简写流的需要。

简写流的表常常通过首先读取另一个仅包含表的简写流来获取,在有些应用程序中,这些表是提前准备好的。此类允许直接从客户端代码指定表。如果在流和 JPEGImageReadParam 中都没有指定任何表,则假定流使用“标准”视觉上无损失表。有关默认表的更多信息,请参见 JPEGQTableJPEGHuffmanTable

内置 JPEG reader 的 getDefaultReadParam 方法返回的默认 JPEGImageReadParam 不包含任何表。默认表可以从表类 JPEGQTableJPEGHuffmanTable 获取。

如果流包含表,则忽略 JPEGImageReadParam 中给定的表。此外,如果流中的第一个图像包含表而后续图像不包含表,则在第一个图像中给定的表将用于所有简写图像。从流中读取表后,只有从相同流中后续读取的表才能重写它们。要指定新表,必须调用 reader 的 setInput 方法来更改流。

注意,此类不提供用来获取流中的表的方法。可以通过考虑使用 reader 返回的 IIOMetadata 对象从流中提取表。

有关内置 JPEG 插件的操作的更新信息,请参见 JPEG metadata format specification and usage notes


字段摘要
 
从类 javax.imageio.ImageReadParam 继承的字段
canSetSourceRenderSize, destination, destinationBands, minProgressivePass, numProgressivePasses, sourceRenderSize
 
从类 javax.imageio.IIOParam 继承的字段
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
 
构造方法摘要
JPEGImageReadParam()
          构造一个 JPEGImageReadParam
 
方法摘要
 boolean areTablesSet()
          如果表是当前设置的,则返回 true
 JPEGHuffmanTable[] getACHuffmanTables()
          返回最近一次调用 setDecodeTables 设置的 AC Huffman 表所组成数组的一个副本;如果当前没有设置表,则返回 null
 JPEGHuffmanTable[] getDCHuffmanTables()
          返回最近一次调用 setDecodeTables 设置的 DC Huffman 表所组成数组的一个副本;如果当前没有设置表,则返回 null
 JPEGQTable[] getQTables()
          返回最近一次调用 setDecodeTables 设置的量化表所组成数组的一个副本;如果当前没有设置表,则返回 null
 void setDecodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
          设置量化表和 Huffman 表以在解码简写流中使用。
 void unsetDecodeTables()
          移除当前设置的所有量化表和 Huffman 表。
 
从类 javax.imageio.ImageReadParam 继承的方法
canSetSourceRenderSize, getDestination, getDestinationBands, getSourceMaxProgressivePass, getSourceMinProgressivePass, getSourceNumProgressivePasses, getSourceRenderSize, setDestination, setDestinationBands, setDestinationType, setSourceProgressivePasses, setSourceRenderSize
 
从类 javax.imageio.IIOParam 继承的方法
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setSourceBands, setSourceRegion, setSourceSubsampling
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

JPEGImageReadParam

public JPEGImageReadParam()
构造一个 JPEGImageReadParam

方法详细信息

areTablesSet

public boolean areTablesSet()
如果表是当前设置的,则返回 true

返回:
如果表存在,则返回 true

setDecodeTables

public void setDecodeTables(JPEGQTable[] qTables,
                            JPEGHuffmanTable[] DCHuffmanTables,
                            JPEGHuffmanTable[] ACHuffmanTables)
设置量化表和 Huffman 表以在解码简写流中使用。每个类型可能至多有 4 个表。在流中遇到表后,将忽略这些表。所有参数都必须为非 null。两个 Huffman 表的数组必须具有相同的元素数。假定流中的帧和扫描标题的表说明符等效于这些数组中的索引。使用此方法复制参数数组。

参数:
qTables - 量化表对象所组成的数组。
DCHuffmanTables - Huffman 表对象所组成的数组。
ACHuffmanTables - Huffman 表对象所组成的数组。
抛出:
IllegalArgumentException - 如果这些参数中的任何一个为 null、具有 4 个以上的元素,或者 DC 和 AC 的表数不同。
另请参见:
unsetDecodeTables()

unsetDecodeTables

public void unsetDecodeTables()
移除当前设置的所有量化表和 Huffman 表。

另请参见:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getQTables

public JPEGQTable[] getQTables()
返回最近一次调用 setDecodeTables 设置的量化表所组成数组的一个副本;如果当前没有设置表,则返回 null

返回:
JPEGQTable 对象所组成的数组;或者 null
另请参见:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getDCHuffmanTables

public JPEGHuffmanTable[] getDCHuffmanTables()
返回最近一次调用 setDecodeTables 设置的 DC Huffman 表所组成数组的一个副本;如果当前没有设置表,则返回 null

返回:
JPEGHuffmanTable 对象所组成的数组;或者 null
另请参见:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])

getACHuffmanTables

public JPEGHuffmanTable[] getACHuffmanTables()
返回最近一次调用 setDecodeTables 设置的 AC Huffman 表所组成数组的一个副本;如果当前没有设置表,则返回 null

返回:
JPEGHuffmanTable 对象所组成的数组;或者 null
另请参见:
setDecodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])