public class JPEGImageWriteParam extends ImageWriteParam
ImageWriter
的
getDefaultImageWriteParam
方法返回。
这些增加的主要目的是允许表的规范使用在编码的缩写流。内置的JPEG的作家也会接受一个普通的ImageWriteParam
,在这种情况下,笔者将构建必要的表内。
在任何情况下,质量在ImageWriteParam
设置有相同的意义为基础的图书馆:1意味着1的量化表,0.75意味着“标准”,视觉无损量化表,0表示aquantization表所有255。
虽然缩写流的表通常是由第一次写一个简短的流只包含表,在一些应用中,表是固定的提前。这个类允许直接从客户代码中指定的表。
通常情况下,表在IIOMetadata
对象传递给作家指定,并在这些对象包括任何表写入到流。如果在元数据中没有指定表,则将写一个简短的流。如果没有表中包含的元数据和无表都在一个JPEGImageWriteParam
指定,然后简化流编码,使用“标准”视觉无损表。这个类是必要的,用于指定表,当一个简短的流必须写,而不写任何表到流第一。为了使用这个类,传递到作者的元数据对象必须包含没有表,并且必须提供没有流的元数据。见的默认表的更多信息JPEGQTable
和JPEGHuffmanTable
。
默认JPEGImageWriteParam
返回作者的getDefaultWriteParam
方法不包含任何表。默认的表包含在默认IIOMetadata
对象返回的作家。
如果元数据包含表中给出的表格,JPEGImageWriteParam
忽略。此外,一旦一组表已被写入,只有元数据中的表可以重写它们的后续写入,无论是相同的流或不同的。为了使用这个类指定新表,笔者的reset
方法必须调用。
关于内置JPEG插件的操作的更多信息,见JPEG metadata format specification and usage notes。
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
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
Constructor and Description |
---|
JPEGImageWriteParam(Locale locale)
构建了一个
JPEGImageWriteParam 。
|
Modifier and Type | Method and Description |
---|---|
boolean |
areTablesSet()
返回
true 如果表的当前设置。
|
JPEGHuffmanTable[] |
getACHuffmanTables()
返回一个交流赫夫曼的桌子放在地
setEncodeTables 最近调用的数组,或
null 如果表没有当前设置。
|
String[] |
getCompressionQualityDescriptions()
返回
String s可能随着
getCompressionQualityValues 为设置或显示压缩质量水平的用户界面部分的数组。
|
float[] |
getCompressionQualityValues()
返回一个数组,可以使用
float s随着
getCompressionQualityDescriptions 为设置或显示压缩质量水平的用户界面的一部分。
|
JPEGHuffmanTable[] |
getDCHuffmanTables()
返回一个直流赫夫曼表上设置的
setEncodeTables 最近调用的数组,或
null 如果表没有当前设置。
|
boolean |
getOptimizeHuffmanTables()
通过对
setOptimizeHuffmanTables 返回最近调用的值,或
false 如果
setOptimizeHuffmanTables 从来没有叫。
|
JPEGQTable[] |
getQTables()
返回一个量化表上设置的
setEncodeTables 最近调用的数组,或
null 如果表没有当前设置。
|
boolean |
isCompressionLossless()
返回
false JPEG只支持有损压缩插件。
|
void |
setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
设置要使用的编码流的量化和赫夫曼表略。
|
void |
setOptimizeHuffmanTables(boolean optimize)
告诉笔者产生优化的图像作为写作过程的一部分,赫夫曼表。
|
void |
unsetCompression()
删除任何以前的压缩质量设置。
|
void |
unsetEncodeTables()
删除任何量化和赫夫曼表的当前设置。
|
canOffsetTiles, canWriteCompressed, canWriteProgressive, canWriteTiles, getBitRate, getCompressionMode, getCompressionQuality, getCompressionType, getCompressionTypes, getLocale, getLocalizedCompressionTypeName, getPreferredTileSizes, getProgressiveMode, getTileGridXOffset, getTileGridYOffset, getTileHeight, getTileWidth, getTilingMode, setCompressionMode, setCompressionQuality, setCompressionType, setProgressiveMode, setTiling, setTilingMode, unsetTiling
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
public JPEGImageWriteParam(Locale locale)
JPEGImageWriteParam
。平铺是不支持的。支持渐进式编码。默认的渐进模式是mode_disabled。单一形式的压缩,命名为“JPEG”,支持。默认的压缩质量为0.75。
locale
-
Locale
被父类用于本地化压缩类型名称和质量说明,或
null
。
public void unsetCompression()
默认实现将压缩质量0.75F
。
unsetCompression
方法重写,继承类
ImageWriteParam
IllegalStateException
-如果压缩模式不
MODE_EXPLICIT
。
ImageWriteParam.setCompressionType(java.lang.String)
,
ImageWriteParam.setCompressionQuality(float)
public boolean isCompressionLossless()
false
JPEG只支持有损压缩插件。
isCompressionLossless
方法重写,继承类
ImageWriteParam
false
。
IllegalStateException
-如果压缩模式不
MODE_EXPLICIT
。
public String[] getCompressionQualityDescriptions()
ImageWriteParam
String
s可能随着
getCompressionQualityValues
为设置或显示压缩质量水平的用户界面部分的数组。随着指数的
String
i
描述了质量水平
getCompressionQualityValues[i]
和
getCompressionQualityValues[i + 1]
之间的范围。注意,返回的数组的长度
getCompressionQualityValues
永远是一个大于
getCompressionQualityDescriptions
归来。
例如,字符串“好”、“更好”,“最好”的可能的范围[0, .33)
,[.33, .66)
有关,和[.66, 1.0]
。在这种情况下,getCompressionQualityDescriptions
将返回{ "Good", "Better", "Best" }
和getCompressionQualityValues
将返回{ 0.0F, .33F, .66F, 1.0F }
。
如果没有描述可用,null
返回。如果null
是返回getCompressionQualityValues
,这种方法也必须返回null
。
描述应该是为Locale
局部返回getLocale
,如果是non-null
。
如果有多个压缩类型但都已定,一个IllegalStateException
抛出。
默认的实现检查压缩支持,压缩模式MODE_EXPLICIT
。如果是这样的话,如果getCompressionTypes()
是null
或getCompressionType()
是non-null
,它返回null
。
getCompressionQualityDescriptions
方法重写,继承类
ImageWriteParam
String
s数组。
ImageWriteParam.getCompressionQualityValues()
public float[] getCompressionQualityValues()
ImageWriteParam
float
s随着
getCompressionQualityDescriptions
为设置或显示压缩质量水平的用户界面的一部分。更多信息见
getCompressionQualityDescriptions
。
如果没有描述可用,null
返回。如果null
是返回getCompressionQualityDescriptions
,这种方法也必须返回null
。
如果有多个压缩类型但都已定,一个IllegalStateException
抛出。
默认的实现检查压缩支持,压缩模式MODE_EXPLICIT
。如果是这样的话,如果getCompressionTypes()
是null
或getCompressionType()
是non-null
,它返回null
。
getCompressionQualityValues
方法重写,继承类
ImageWriteParam
float
s指示压缩质量水平之间的边界由
getCompressionQualityDescriptions
的
String
s描述数组。
ImageWriteParam.getCompressionQualityDescriptions()
public boolean areTablesSet()
true
如果表的当前设置。
true
如果表现。
public void setEncodeTables(JPEGQTable[] qTables, JPEGHuffmanTable[] DCHuffmanTables, JPEGHuffmanTable[] ACHuffmanTables)
null
。这两个数组赫夫曼表必须有相同数量的元素。在帧表说明符和扫描头的元数据被认为是相当于索引到这些阵列。该方法复制的参数数组。
qTables
-一系列的量化表对象。
DCHuffmanTables
-赫夫曼表对象数组。
ACHuffmanTables
-赫夫曼表对象数组。
IllegalArgumentException
如果任一参数是
null
或已超过4元,或者DC和AC表数量不同。
unsetEncodeTables()
public void unsetEncodeTables()
public JPEGQTable[] getQTables()
setEncodeTables
最近调用的数组,或
null
如果表没有当前设置。
public JPEGHuffmanTable[] getDCHuffmanTables()
setEncodeTables
最近调用的数组,或
null
如果表没有当前设置。
JPEGHuffmanTable
对象的数组,或
null
。
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
public JPEGHuffmanTable[] getACHuffmanTables()
setEncodeTables
最近调用的数组,或
null
如果表没有当前设置。
JPEGHuffmanTable
对象的数组,或
null
。
setEncodeTables(javax.imageio.plugins.jpeg.JPEGQTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[], javax.imageio.plugins.jpeg.JPEGHuffmanTable[])
public void setOptimizeHuffmanTables(boolean optimize)
false
。如果这个标志被设置为
true
,它凌驾于任何表中指定的元数据。注意,这意味着任何图像用这个标志设置为
true
将始终包含赫夫曼表。
optimize
-一个布尔值,指示是否产生优化的赫夫曼表的时候写的。
getOptimizeHuffmanTables()
public boolean getOptimizeHuffmanTables()
setOptimizeHuffmanTables
返回最近调用的值,或
false
如果
setOptimizeHuffmanTables
从来没有叫。
true
如果作者将生成优化的赫夫曼表。
setOptimizeHuffmanTables(boolean)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.