|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.lang.Object javax.imageio.IIOParam javax.imageio.ImageWriteParam
public class ImageWriteParam
描述如何对流进行编码的类。此类的实例或其子类用于提供 ImageWriter
实例的规定“入门”信息。
用于特定图像格式的插件可以定义此类的一个子类,并从其 ImageWriter
实现的 getDefaultWriteParam
方法返回该类的对象。例如,内置 JPEG writer 插件将返回 javax.imageio.plugins.jpeg.JPEGImageWriteParam
的实例。
要写入的图像区域通过第一次将图像的实际边界与 IIOParam.setSourceRegion
指定的矩形(如果有)的相交来确定。如果所得矩形的宽度或高度为零,则该 writer 将抛出 IIOException
。如果相交区域为非空,则写入操作将从第一个二次取样的像素开始,并根据
指定的水平和垂直二次取样因子包含相交边界内额外的像素。
IIOParam.setSourceSubsampling
个别特征(比如 tiling、逐步编码和压缩)可以用以下四种模式之一设置。MODE_DISABLED
禁用这些特征;MODE_DEFAULT
使用带有受控于 writer 的参数值启用这些特征;MODE_EXPLICIT
启用这些特定并允许使用 set
方法提供额外的参数;MODE_COPY_FROM_METADATA
则从流以及传递给 writer 的图像元数据对象中复制相关的参数值。所有特征的默认模式是 MODE_COPY_FROM_METADATA
。鼓励使用子类中提供的非标准特征,但不要求使用类似的方案。
插件 writer 可以通过提供实现额外的、特定于插件的接口来扩展 ImageWriteParam
的功能。由插件负责记录哪些接口可用以及如何使用。writer 将安静地忽略所有其未知的 ImageWriteParam
子类扩展功能。此外,将忽略通常在通过 getDefaultWriteParam
创建自己的 ImageWriteParam
实例时禁用的所有可选功能。
注意,如果不存在针对某一功能的查询方法,所有 ImageWriter
实现就必须都支持该功能(例如,逐步编码是可选的,但二次取样必须受支持)。
ImageReadParam
字段摘要 | |
---|---|
protected boolean |
canOffsetTiles
如果此 ImageWriteParam 允许使用 tiling 网格偏移量参数,则返回为 true 的 boolean 值。 |
protected boolean |
canWriteCompressed
如果此 writer 可以使用压缩写入图像,则返回为 true 的 boolean 值。 |
protected boolean |
canWriteProgressive
如果此 ImageWriteParam 允许以一个质量递增传递的逐步序列的方式写入图像,则返回为 true 的 boolean 值。 |
protected boolean |
canWriteTiles
如果此 ImageWriteParam 允许设置 tile 的宽度和高度参数,则返回为 true 的 boolean 值。 |
protected int |
compressionMode
控制压缩设置的模式,必须将它设置为四个 MODE_* 值之一。 |
protected float |
compressionQuality
包含当前压缩质量设置的 float 值。 |
protected String |
compressionType
包含当前压缩类型名称的 String ,如果没有设置压缩类型,则返回 null 。 |
protected String[] |
compressionTypes
包含可用压缩类型名称的 String 数组。 |
protected Locale |
locale
用于本地化压缩类型名称和质量描述的 Locale ,null 表示使用默认 Locale 。 |
static int |
MODE_COPY_FROM_METADATA
一个常量值,可以传入诸如 setTilingMode 、setProgressiveMode 或 setCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。 |
static int |
MODE_DEFAULT
一个常量值,可以传入诸如 setTilingMode 、setProgressiveMode 和 setCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。 |
static int |
MODE_DISABLED
一个常量值,可以传入诸如 setTilingMode 、setProgressiveMode 和 setCompressionMode 之类的方法中,以禁用用于以后的写入操作的某个特征。 |
static int |
MODE_EXPLICIT
一个常量值,可以传入诸如 setTilingMode 或 setCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。 |
protected Dimension[] |
preferredTileSizes
首选 tile 大小范围对组成的数组。 |
protected int |
progressiveMode
控制逐步编码的模式,必须将它设置为除 MODE_EXPLICIT 以外的四个 MODE_* 值之一。 |
protected int |
tileGridXOffset
如果已经设置 tiling,则返回 tile 网格原点应该从图像原点水平偏移的量。 |
protected int |
tileGridYOffset
如果已经设置 tiling,则返回 tile 网格原点应该从图像原点垂直偏移的量。 |
protected int |
tileHeight
如果已经设置 tiling,则返回每个 tile 的高度,否则返回 0。 |
protected int |
tileWidth
如果已经设置 tiling,则返回每个 tile 的宽度,否则返回 0。 |
protected int |
tilingMode
控制 tiling 设置的模式,必须将它设置为以下四个 MODE_* 值之一。 |
protected boolean |
tilingSet
如果已经指定 tiling 参数,则返回一个为 true 的 boolean 值。 |
从类 javax.imageio.IIOParam 继承的字段 |
---|
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset |
构造方法摘要 | |
---|---|
protected |
ImageWriteParam()
构造一个空的 ImageWriteParam 。 |
|
ImageWriteParam(Locale locale)
构造一个 ImageWriteParam 集,以使用给定 Locale 。 |
方法摘要 | |
---|---|
boolean |
canOffsetTiles()
如果 writer 在执行写入操作的同时可以使用非零网格偏移量进行平铺,则返回 true 。 |
boolean |
canWriteCompressed()
如果此 writer 支持压缩,则返回 true 。 |
boolean |
canWriteProgressive()
如果 writer 能够以一系列质量逐渐递增的传递的方式将图像写出,则返回 true 。 |
boolean |
canWriteTiles()
如果 writer 在执行写入操作的同时可以进行平铺,则返回 true 。 |
float |
getBitRate(float quality)
返回一个 float 值,该值指示对给定质量级别上用于输入图像数据的每个位的输出数据位数的估计。 |
int |
getCompressionMode()
如果支持压缩,则返回当前压缩模式。 |
float |
getCompressionQuality()
返回当前压缩质量设置。 |
String[] |
getCompressionQualityDescriptions()
返回一个 String 数组,可作为用户界面的一部分与 getCompressionQualityValues 一起使用,以设置或显示压缩质量级别。 |
float[] |
getCompressionQualityValues()
返回一个 float 数组,可作为用户界面的一部分与 getCompressionQualityDescriptions 一起使用,以设置或显示压缩质量级别。 |
String |
getCompressionType()
返回当前设置的压缩类型,如果没有设置任何压缩类型,则返回 null 。 |
String[] |
getCompressionTypes()
以数组或 String 形式返回可用压缩类型的列表,如果不能使用这些接口选择压缩类型,则返回 null 。 |
Locale |
getLocale()
返回当前设置的 Locale ,如果仅支持默认 Locale ,则返回 null 。 |
String |
getLocalizedCompressionTypeName()
返回当前压缩类型的本地化名称,使用 getLocale 返回的 Locale 。 |
Dimension[] |
getPreferredTileSizes()
返回一个 Dimension 数组,指示在输出文件或流中进行编码时 tile 的合法大小范围。 |
int |
getProgressiveMode()
返回以逐步方式将数据写入流的当前模式。 |
int |
getTileGridXOffset()
返回图像的水平 tile 网格偏移量,将根据该偏移量对输出流进行写入。 |
int |
getTileGridYOffset()
返回图像的垂直 tile 网格偏移量,将根据该偏移量对输出流进行写入。 |
int |
getTileHeight()
返回图像中每个 tile 的高度,将根据该高度对输出流进行写入。 |
int |
getTileWidth()
返回图像中每个 tile 的宽度,将根据该宽度对输出流进行写入。 |
int |
getTilingMode()
如果支持平铺,则返回当前平铺模式。 |
boolean |
isCompressionLossless()
如果当前压缩类型提供无损失的压缩,则返回 true 。 |
void |
setCompressionMode(int mode)
指定是否执行压缩,如果执行压缩,将如何确定 compression 参数。 |
void |
setCompressionQuality(float quality)
将压缩质量设置为 0 和 1 之间的某个值。 |
void |
setCompressionType(String compressionType)
将压缩类型设置为 getCompressionTypes 指示的值之一。 |
void |
setProgressiveMode(int mode)
指定 writer 使用逐步模式写出图像,从而输出流将包含一系列质量递增的扫描。 |
void |
setTiling(int tileWidth,
int tileHeight,
int tileGridXOffset,
int tileGridYOffset)
指定应该在输出流中平铺图像。 |
void |
setTilingMode(int mode)
确定图像在输出流中是否将被平铺,如果将被平铺,将如何确定 tiling 参数。 |
void |
unsetCompression()
移除所有以前的压缩类型和质量设置。 |
void |
unsetTiling()
移除通过调用 setTiling 指定的所有以前的 tile 网格参数。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final int MODE_DISABLED
setTilingMode
、setProgressiveMode
和 setCompressionMode
之类的方法中,以禁用用于以后的写入操作的某个特征。也就是说,在设置此模式时,该流将不被平铺、逐步编码或压缩,相关的访问器方法将抛出 IllegalStateException
。
public static final int MODE_DEFAULT
setTilingMode
、setProgressiveMode
和 setCompressionMode
之类的方法中,以启用用于以后的写入操作的特征。也就是说,在启用此模式时,将根据 writer 以与插件有关的方式内部选择的明智默认值来平铺、逐步编码和压缩该流,相关的访问器方法将抛出 IllegalStateException
。
public static final int MODE_EXPLICIT
setTilingMode
或 setCompressionMode
之类的方法中,以启用用于以后的写入操作的特征。也就是说,在设置此模式时,将根据为此类中的相应 set
方法提供的额外信息和可以从相应 get
方法中检索到的信息来平铺或压缩该流。注意,此模式不支持逐步输出。
public static final int MODE_COPY_FROM_METADATA
setTilingMode
、setProgressiveMode
或 setCompressionMode
之类的方法中,以启用用于以后的写入操作的特征。也就是说,在启用此模式时,将根据传入写入操作的流内容和/或图像元数据来平铺、逐步编码和压缩该流,所有相关访问器方法都将抛出 IllegalStateException
。
这是所有特征的默认模式,因此,如果一个包括元数据的读取操作之后将进行包括元数据的写入操作,则读取操作将保留尽可能多的信息。
protected boolean canWriteTiles
ImageWriteParam
允许设置 tile 的宽度和高度参数,则返回为 true
的 boolean
值。默认情况下,该值为 false
。子类必须手工设置该值。
不支持写入 tile 的子类应该确保此值被设置为 false
。
protected int tilingMode
MODE_*
值之一。默认值为 MODE_COPY_FROM_METADATA
。
不支持写入 tile 的子类可以忽略此值。
protected Dimension[] preferredTileSizes
null
,指示没有首选大小。如果该值为非 null
值,则首选大小的平均长度必须至少为 2。
不支持写入 tile 的子类可以忽略此值。
protected boolean tilingSet
true
的 boolean
值。
不支持写入 tile 的子类可以忽略此值。
protected int tileWidth
不支持 tiling 的子类可以忽略此值。
protected int tileHeight
0
。
不支持 tiling 的子类可以忽略此值。
protected boolean canOffsetTiles
ImageWriteParam
允许使用 tiling 网格偏移量参数,则返回为 true
的 boolean
值。默认情况下,该值为 false
。子类必须手工设置该值。
不支持写入 tile 的子类或支持写入 tile 但不支持将 tile 偏移的子类必须确保此值被设置为 false
。
protected int tileGridXOffset
0
。
不支持将 tile 偏移的子类可以忽略此值。
protected int tileGridYOffset
0
。
不支持将 tile 偏移的子类可以忽略此值。
protected boolean canWriteProgressive
ImageWriteParam
允许以一个质量递增传递的逐步序列的方式写入图像,则返回为 true
的 boolean
值。默认情况下,该值为 false
。子类必须手工设置该值。
不支持逐步编码的子类必须确保此值被设置为 false
。
protected int progressiveMode
MODE_EXPLICIT
以外的四个 MODE_*
值之一。默认值为 MODE_COPY_FROM_METADATA
。
不支持逐步编码的子类可以忽略此值。
protected boolean canWriteCompressed
true
的 boolean
值。默认情况下,该值为 false
。子类必须手工设置该值。
不支持压缩的子类必须确保此值被设置为 false
。
protected int compressionMode
MODE_*
值之一。默认值为 MODE_COPY_FROM_METADATA
。
不支持压缩的子类可以忽略此值。
protected String[] compressionTypes
String
数组。子类必须手工设置该值。
不支持压缩的子类可以忽略此值。
protected String compressionType
String
,如果没有设置压缩类型,则返回 null
。
不支持压缩的子类可以忽略此值。
protected float compressionQuality
float
值。初始值为 1.0F
。
不支持压缩的子类可以忽略此值。
protected Locale locale
Locale
,null
表示使用默认 Locale
。子类必须手工设置该值。
构造方法详细信息 |
---|
protected ImageWriteParam()
ImageWriteParam
。由子类负责恰当地设置实例变量。
public ImageWriteParam(Locale locale)
ImageWriteParam
集,以使用给定 Locale
。
locale
- 将用于本地化压缩类型名称和质量描述的 Locale
,或者为 null
。方法详细信息 |
---|
public Locale getLocale()
Locale
,如果仅支持默认 Locale
,则返回 null
。
Locale
或 null
。public boolean canWriteTiles()
true
。如果此方法返回 false
,则 setTiling
将抛出 UnsupportedOperationException
。
true
。canOffsetTiles()
,
setTiling(int, int, int, int)
public boolean canOffsetTiles()
true
。如果此方法返回 false
,则 setTiling
将抛出 UnsupportedOperationException
,如果网格偏移量参数不同时为零的话。如果 canWriteTiles
返回 false
,则此方法也将返回 false
。
true
。canWriteTiles()
,
setTiling(int, int, int, int)
public void setTilingMode(int mode)
MODE_DISABLED
- 图像不会被平铺,setTiling
将抛出 IllegalStateException
。
MODE_DEFAULT
- 将使用默认参数平铺图像。setTiling
将抛出 IllegalStateException
。
MODE_EXPLICIT
- 将根据 setTiling
方法中给定的参数平铺图像。任何以前设置的 tiling 参数都将被丢弃。
MODE_COPY_FROM_METADATA
- 图像将与传入某一写入操作中的元数据对象一致。setTiling
将抛出 IllegalStateException
。
mode
- 用于 tiling 的模式。
UnsupportedOperationException
- 如果 canWriteTiles
返回 false
。
IllegalArgumentException
- 如果 mode
不是上面列出的模式之一。setTiling(int, int, int, int)
,
getTilingMode()
public int getTilingMode()
UnsupportedOperationException
。
UnsupportedOperationException
- 如果 canWriteTiles
返回 false
。setTilingMode(int)
public Dimension[] getPreferredTileSizes()
Dimension
数组,指示在输出文件或流中进行编码时 tile 的合法大小范围。返回的数组是一个副本。
信息以对集合的形式返回;对的第一个元素包含最小宽度和高度(包括在内),第二个元素包含最大宽度和高度(包括在内)。将其放到一起,每个对便定义了一个有效大小范围。要定义固定大小,则对两个元素使用相同的宽度和高度。要定义任意范围,则使用 null
值替代实际 Dimension
数组。
如果构造方法上没有指定数组,但允许进行平铺,则此方法返回 null
。
Dimension
数组,其平均长度至少为 2;或者 null
。
UnsupportedOperationException
- 如果插件不支持平铺。public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
tileWidth
和 tileHeight
参数指定文件中 tile 的宽度和高度。如果 tile 的宽度或高度大于图像的宽度或高度,则图像无法使用该维数平铺。
如果 canOffsetTiles
返回 false
,则 tileGridXOffset
和 tileGridYOffset
参数必须为零。
tileWidth
- 每个 tile 的宽度。tileHeight
- 每个 tile 的高度。tileGridXOffset
- tile 网格的水平偏移量。tileGridYOffset
- tile 网格的垂直偏移量。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不为 MODE_EXPLICIT
。
UnsupportedOperationException
- 如果插件不支持网格偏移量,且网格偏移量并不都为零。
IllegalArgumentException
- 如果 tile 大小不在 getPreferredTileSizes
返回的某个所允许范围内。
IllegalArgumentException
- 如果 tileWidth
或 tileHeight
小于等于 0。canWriteTiles
,
canOffsetTiles
,
getTileWidth()
,
getTileHeight()
,
getTileGridXOffset()
,
getTileGridYOffset()
public void unsetTiling()
setTiling
指定的所有以前的 tile 网格参数。
默认实现将实例变量 tileWidth
、tileHeight
、tileGridXOffset
和 tileGridYOffset
都设置为 0
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不为 MODE_EXPLICIT
。setTiling(int, int, int, int)
public int getTileWidth()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不为 MODE_EXPLICIT
。
IllegalStateException
- 如果尚未设置 tiling 参数。setTiling(int, int, int, int)
,
getTileHeight()
public int getTileHeight()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不为 MODE_EXPLICIT
。
IllegalStateException
- 如果尚未设置 tiling 参数。setTiling(int, int, int, int)
,
getTileWidth()
public int getTileGridXOffset()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不为 MODE_EXPLICIT
。
IllegalStateException
- 如果尚未设置 tiling 参数。setTiling(int, int, int, int)
,
getTileGridYOffset()
public int getTileGridYOffset()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不为 MODE_EXPLICIT
。
IllegalStateException
- 如果尚未设置 tiling 参数。setTiling(int, int, int, int)
,
getTileGridXOffset()
public boolean canWriteProgressive()
true
。
true
。setProgressiveMode(int)
,
getProgressiveMode()
public void setProgressiveMode(int mode)
UnsupportedOperationException
。
mode 参数确定如何选择 progression 参数,并且必须是 MODE_DISABLED
、MODE_COPY_FROM_METADATA
或 MODE_DEFAULT
。否则抛出 IllegalArgumentException
。
对这些模式的解释如下:
MODE_DISABLED
- 不前进。使用此模式则停止前进。
MODE_COPY_FROM_METADATA
- 输出图像将使用在传入 writer 的元数据对象中找到的任何 progression 参数。
MODE_DEFAULT
- 该图像将被逐步写入,参数由 writer 选择。
默认值为 MODE_COPY_FROM_METADATA
。
mode
- 用来在输出流中设置进度的模式。
UnsupportedOperationException
- 如果 writer 不支持逐步编码。
IllegalArgumentException
- 如果 mode
不是上面列出的模式之一。getProgressiveMode()
public int getProgressiveMode()
UnsupportedOperationException
- 如果 writer 不支持逐步编码。setProgressiveMode(int)
public boolean canWriteCompressed()
true
。
true
。public void setCompressionMode(int mode)
mode
参数必须是四种模式之一,对它们的解释如下:
MODE_DISABLED
- 不压缩。一些 writer(比如 JPEG)可能不允许使用此模式,此模式通常不提供未压缩的输出。相应的 set
和 get
方法将抛出 IllegalStateException
。
MODE_EXPLICIT
- 使用此 ImageWriteParam
中指定的压缩类型和质量设置进行压缩。任何以前设置的 compression 参数都将被丢弃。
MODE_COPY_FROM_METADATA
- 使用传入 writer 的元数据对象中指定的 compression 参数。
MODE_DEFAULT
- 使用默认 compression 参数。
默认值为 MODE_COPY_FROM_METADATA
。
mode
- 用来在输出流中设置压缩的模式。
UnsupportedOperationException
- 如果 writer 不支持压缩,或者不支持所请求的模式。
IllegalArgumentException
- 如果 mode
不是上面列出的模式之一。getCompressionMode()
public int getCompressionMode()
UnsupportedOperationException
- 如果 writer 不支持压缩。setCompressionMode(int)
public String[] getCompressionTypes()
String
形式返回可用压缩类型的列表,如果不能使用这些接口选择压缩类型,则返回 null
。返回的数组是一个副本。
如果 writer 只提供某一强制形式的压缩,则没有必要提供所有指定的压缩类型。指定压缩类型只应该在用户能够在不同方案之间作出有意义选择的情况下使用。
默认实现检查是否支持压缩,如果不支持,则抛出 UnsupportedOperationException
。否则,如果 compressionTypes
实例变量为非 null
,则返回该变量的副本,否则返回 null
。
String
数组,或者返回 null
。
UnsupportedOperationException
- 如果 writer 不支持压缩。public void setCompressionType(String compressionType)
getCompressionTypes
指示的值之一。如果传入的是 null
值,则移除所有以前的设置。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是,则调用 getCompressionTypes
并检查 compressionType
是否是合法值之一。如果是合法值,则设置 compressionType
实例变量。如果 compressionType
为 null
,则设置该实例变量而不执行任何检查。
compressionType
- 由 getCompressionTypes
返回的 String
之一;或者为 null
,表示移除所有以前的设置。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
UnsupportedOperationException
- 如果没有可设置的压缩类型。
IllegalArgumentException
- 如果 compressionType
为非 null
但不是 getCompressionTypes
返回的值之一。getCompressionTypes()
,
getCompressionType()
,
unsetCompression()
public String getCompressionType()
null
。以 String
的形式返回该类型,它是 getCompressionTypes
返回的那些类型之一。如果没有设置压缩类型,则返回 null
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,则返回 compressionType
实例变量的值。
String
形式的当前压缩类型,如果没有设置压缩类型,则返回 null
。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。setCompressionType(java.lang.String)
public void unsetCompression()
默认实现将实例变量 compressionType
设置为 null
,并将实例变量 compressionQuality
设置为 1.0F
。
UnsupportedOperationException
- 如果插件不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。setCompressionType(java.lang.String)
,
setCompressionQuality(float)
public String getLocalizedCompressionTypeName()
getLocale
返回的 Locale
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,或者 compressionType
为非 null
,则作为一种便捷方式返回 getCompressionType
的值。
String
。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
IllegalStateException
- 如果没有设置压缩类型。public boolean isCompressionLossless()
true
。如果插件只提供一个强制压缩类型,则可以在不先调用 setCompressionType
的情况下调用此方法。
如果有多个压缩类型,但没有设置任何一种压缩类型,则抛出 IllegalStateException
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,而 getCompressionTypes()
为 null
或 getCompressionType()
为非 null
,则作为一种便捷方式返回 true
。
true
。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
IllegalStateException
- 如果合法压缩类型集为非 null
并且当前压缩类型为 null
。public void setCompressionQuality(float quality)
0
和 1
之间的某个值。默认情况下,只支持一种压缩质量设置;writer 可以提供扩展的 ImageWriteParam
,其提供了更多控制。对于有损失的压缩方案,压缩质量应该控制文件大小与图像质量之间的权衡(例如,通过在写入 JPEG 图像时选择量化表)。对于无损失方案,可以使用压缩质量控制文件大小与执行压缩所用时间之间的权衡(例如,通过在写入 PNG 图像时优化行过滤器并设置 ZLIB 压缩级别)。
压缩质量为 0.0 通常被解释为“高度压缩很重要”,而该设置为 1.0 通常被解释为“高图像质量很重要”。
如果有多个压缩类型,但没有设置任何一种压缩类型,则抛出 IllegalStateException
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,而 getCompressionTypes()
返回 null
或 compressionType
为非 null
,则设置 compressionQuality
实例变量。
quality
- 指示所需质量级别的 0
与 1
之间的一个 float
值。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
IllegalStateException
- 如果合法压缩类型集为非 null
并且当前压缩类型为 null
。
IllegalArgumentException
- 如果 quality
不在 0
与 1
(包括两者)之间。getCompressionQuality()
public float getCompressionQuality()
如果有多个压缩类型,但没有设置任何一种压缩类型,则抛出 IllegalStateException
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,而 getCompressionTypes()
为 null
或 getCompressionType()
为非 null
,则返回 compressionQuality
实例变量的值。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
IllegalStateException
- 如果合法压缩类型集为非 null
并且当前压缩类型为 null
。setCompressionQuality(float)
public float getBitRate(float quality)
float
值,该值指示对给定质量级别上用于输入图像数据的每个位的输出数据位数的估计。该值通常位于 0
与 1
之间,值越小则压缩得越紧。特殊值 -1.0F
用于指示没有估计数可用。
如果有多个压缩类型,但没有设置任何一种压缩类型,则抛出 IllegalStateException
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,而 getCompressionTypes()
为 null
或 getCompressionType()
为非 null
,并且 quality
在适当范围内,则返回 -1.0
。
quality
- 将查询其位率 (bit rate) 的查询设置。
-1.0F
。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
IllegalStateException
- 如果合法压缩类型集为非 null
并且当前压缩类型为 null
。
IllegalArgumentException
- 如果 quality
不在 0
与 1
(包括两者)之间。public String[] getCompressionQualityDescriptions()
String
数组,可作为用户界面的一部分与 getCompressionQualityValues
一起使用,以设置或显示压缩质量级别。索引为 i
的 String
提供对质量级别范围的描述,该范围在 getCompressionQualityValues[i]
与 getCompressionQualityValues[i + 1]
之间。注意,从 getCompressionQualityValues
返回的数组长度将总是大于从 getCompressionQualityDescriptions
返回的数组长度。
例如,字符串 "Good"、"Better" 和 "Best" 可以与范围 [0, .33)
、[.33, .66)
和 [.66, 1.0]
关联。在这种情况下,getCompressionQualityDescriptions
将返回 { "Good", "Better", "Best" }
,getCompressionQualityValues
将返回 { 0.0F, .33F, .66F, 1.0F }
。
如果没有描述可用,则返回 null
。如果从 getCompressionQualityValues
返回 null
,则此方法也必须返回 null
。
应该为由 getLocale
返回的 Locale
将描述本地化,如果 Locale 为非 null
的话。
如果有多个压缩类型,但没有设置任何一种压缩类型,则抛出 IllegalStateException
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,而 getCompressionTypes()
为 null
或 getCompressionType()
为非 null
,则返回 null
。
String
数组。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
IllegalStateException
- 如果合法压缩类型集为非 null
并且当前压缩类型为 null
。getCompressionQualityValues()
public float[] getCompressionQualityValues()
float
数组,可作为用户界面的一部分与 getCompressionQualityDescriptions
一起使用,以设置或显示压缩质量级别。有关更多信息,请参阅 getCompressionQualityDescriptions
。
如果没有描述可用,则返回 null
。如果从 getCompressionQualityDescriptions
返回 null
,则此方法也必须返回 null
。
如果有多个压缩类型,但没有设置任何一种压缩类型,则抛出 IllegalStateException
。
默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT
。如果是这样,而 getCompressionTypes()
为 null
或 getCompressionType()
为非 null
,则返回 null
。
float
数组,指示 getCompressionQualityDescriptions
中的 String
描述的压缩质量级别之间的分界线。
UnsupportedOperationException
- 如果 writer 不支持压缩。
IllegalStateException
- 如果压缩模式不是 MODE_EXPLICIT
。
IllegalStateException
- 如果合法压缩类型集为非 null
并且当前压缩类型为 null
。getCompressionQualityDescriptions()
|
JavaTM 2 Platform Standard Ed. 5.0 |
|||||||||
上一个类 下一个类 | 框架 无框架 | |||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策。