public class ImageWriteParam extends IIOParam
ImageWriter
。
用于特定图像格式的插件可以定义该类的子类,并从其ImageWriter
实现的getDefaultWriteParam
方法返回该类的对象。 例如,内置的JPEG writer插件将返回javax.imageio.plugins.jpeg.JPEGImageWriteParam的javax.imageio.plugins.jpeg.JPEGImageWriteParam
。
要写入的图像的区域通过首先将图像的实际边界与由IIOParam.setSourceRegion指定的IIOParam.setSourceRegion
(如果有的话)来确定。 如果生成的矩形的宽度或高度为零,作者将抛出一个IIOException
。 如果交集非空,写入将与第一子采样像素开始,并包括根据所指定的水平和垂直子采样因子的相交边界内的额外像素IIOParam.setSourceSubsampling
。
可以在四种模式之一中设置诸如平铺,逐行编码和压缩的各种特征。 MODE_DISABLED
禁用功能; MODE_DEFAULT
启用具有写入控制参数值的功能; MODE_EXPLICIT
启用该功能并允许使用set
方法提供附加参数; 和MODE_COPY_FROM_METADATA
从传递给作者的流和图像元数据对象复制相关参数值。 所有功能的默认值为MODE_COPY_FROM_METADATA
。 鼓励在子类中提供的非标准功能,但不需要使用类似的方案。
插件作家可以延伸的功能ImageWriteParam
通过提供实现额外的子类,插件特定的接口。 插件可以记录哪些接口可用,以及如何使用它们。 作家将默默地忽略他们不知道的ImageWriteParam
子类的任何扩展功能。 此外,他们可能会忽略通过getDefaultWriteParam
创建自己的ImageWriteParam
实例时通常禁用的任何可选功能。
请注意,除非存在某种功能的查询方法,否则必须由所有ImageWriter
实现( 例如逐行编码是可选的,但是必须支持二次抽样)。
ImageReadParam
Modifier and Type | Field and Description |
---|---|
protected boolean |
canOffsetTiles
A
boolean 是
true 如果这
ImageWriteParam 允许平铺网格偏移参数被设置。
|
protected boolean |
canWriteCompressed
A
boolean 是
true 如果这个作者可以使用压缩编写图像。
|
protected boolean |
canWriteProgressive
A
boolean 是
true 如果这个
ImageWriteParam 允许图像被写入作为逐渐增加的质量通行序列。
|
protected boolean |
canWriteTiles
A
boolean 是
true 如果这个
ImageWriteParam 允许设置瓦片宽度和瓦片高度参数。
|
protected int |
compressionMode
模式控制压缩设置,必须设置为四个
MODE_* 之一。
|
protected float |
compressionQuality
A
float 包含当前的压缩质量设置。
|
protected String |
compressionType
A
String 包含当前压缩类型的名称,如果没有设置,
null 。
|
protected String[] |
compressionTypes
的阵列
String 包含可用压缩类型的名称秒。
|
protected Locale |
locale
A
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
一组优选的瓷砖尺寸范围对。
|
protected int |
progressiveMode
控制逐行编码的模式,必须设置为四个
MODE_* 之一,除了
MODE_EXPLICIT 。
|
protected int |
tileGridXOffset
如果已经设置了平铺,则瓦片网格原点应从图像原点水平偏移,否则为0。
|
protected int |
tileGridYOffset
如果平铺已设置,则瓦片网格原点应与图像原点垂直偏移,否则为0。
|
protected int |
tileHeight
每个瓦片的高度如果平铺已设置,否则为0。
|
protected int |
tileWidth
每个瓦片的宽度如果已经设置了平铺,否则为0。
|
protected int |
tilingMode
该模式控制平铺设置,其中必须设置为四个
MODE_* 值。
|
protected boolean |
tilingSet
一个
boolean 是
true ,如果已经指定tiling参数。
|
controller, defaultController, destinationOffset, destinationType, sourceBands, sourceRegion, sourceXSubsampling, sourceYSubsampling, subsamplingXOffset, subsamplingYOffset
Modifier | Constructor and Description |
---|---|
protected |
ImageWriteParam()
构造一个空的
ImageWriteParam 。
|
|
ImageWriteParam(Locale locale)
构造一个
ImageWriteParam 集使用给定的
Locale 。
|
Modifier and Type | Method and Description |
---|---|
boolean |
canOffsetTiles()
如果作者在写入时可以执行非零网格偏移量的平铺,则返回
true 。
|
boolean |
canWriteCompressed()
返回
true 如果此writer支持压缩。
|
boolean |
canWriteProgressive()
返回
true 如果作者可以将图像写成一系列逐渐提高质量的通行证。
|
boolean |
canWriteTiles()
如果作者在写作时可以执行平铺,则返回
true 。
|
float |
getBitRate(float quality)
返回
float 指示在给定质量水平的每个输入图像数据的位的输出数据的位数的估计。
|
int |
getCompressionMode()
如果支持压缩,则返回当前压缩模式。
|
float |
getCompressionQuality()
返回当前的压缩质量设置。
|
String[] |
getCompressionQualityDescriptions()
返回的数组
String 可与被用于沿小号
getCompressionQualityValues 作为用户接口,用于设置或显示压缩质量级别的一部分。
|
float[] |
getCompressionQualityValues()
返回的数组
float 可与被用于沿小号
getCompressionQualityDescriptions 作为用户接口,用于设置或显示压缩质量级别的一部分。
|
String |
getCompressionType()
返回当前设置的压缩类型,或
null 如果没有设置。
|
String[] |
getCompressionTypes()
返回一个可用的压缩类型的列表,如数组或
String s或
null 如果可能无法使用这些接口选择压缩类型。
|
Locale |
getLocale()
返回当前设置
Locale ,或
null 如果只有一个默认
Locale 支持。
|
String |
getLocalizedCompressionTypeName()
返回当前压缩类型名称的本地化版本,使用
Locale 通过返回
getLocale 。
|
Dimension[] |
getPreferredTileSizes()
返回一个
Dimension s的数组,
Dimension 瓦片的合法尺寸范围,因为它们将被编码在输出文件或流中。
|
int |
getProgressiveMode()
返回以逐行方式写入流的当前模式。
|
int |
getTileGridXOffset()
返回图像的水平瓦片网格偏移,因为它将被写入输出流。
|
int |
getTileGridYOffset()
返回图像的垂直瓦片网格偏移,因为它将被写入输出流。
|
int |
getTileHeight()
返回图像中每个图块的高度,因为它将被写入输出流。
|
int |
getTileWidth()
返回图像中每个图块的宽度,因为它将被写入输出流。
|
int |
getTilingMode()
如果支持平铺,返回当前的平铺模式。
|
boolean |
isCompressionLossless()
返回
true 如果当前压缩类型提供无损压缩。
|
void |
setCompressionMode(int mode)
指定是否执行压缩,如果需要确定压缩参数。
|
void |
setCompressionQuality(float quality)
将压缩质量设置为
0 和
1 之间的值。
|
void |
setCompressionType(String compressionType)
将压缩类型设置为getCompressionTypes指示的值
getCompressionTypes 。
|
void |
setProgressiveMode(int mode)
指定写入器将以逐行模式写入图像,以使流包含一系列增加质量的扫描。
|
void |
setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
指定图像应该平铺在输出流中。
|
void |
setTilingMode(int mode)
确定图像是否将平铺在输出流中,如果是,将确定平铺参数的确定方式。
|
void |
unsetCompression()
删除任何以前的压缩类型和质量设置。
|
void |
unsetTiling()
删除通过调用指定的任何以前的瓦片网格参数
setTiling 。
|
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
public static final int MODE_DISABLED
setTilingMode
, setProgressiveMode
和setCompressionMode
至用于以后的写入禁用的特征。
也就是说,当设置此模式时,流将不会被平铺,渐进或压缩,相关的访问器方法将抛出IllegalStateException
。
public static final int MODE_DEFAULT
setTilingMode
, setProgressiveMode
和setCompressionMode
启用该功能用于以后的写入。
也就是说,当启用此模式时,流将按照插件依赖方式由作者内部选择的合理默认进行平铺,渐进或压缩,相关的访问者方法将抛出IllegalStateException
。
public static final int MODE_EXPLICIT
setTilingMode
或setCompressionMode
之类的方法的常量值,以使能功能以供将来写入。
也就是说,当该模式被设置时,根据提供给该类中set
方法的附加set
,流将被平铺或压缩,并且可以从相应的set
方法中get
。
请注意,逐行输出不支持此模式。
public static final int MODE_COPY_FROM_METADATA
setTilingMode
, setProgressiveMode
,或setCompressionMode
启用该功能用于以后的写入。
也就是说,当启用此模式时,流将按照传入到写入操作的流和/或图像元数据的内容进行平铺,逐行或压缩,任何相关的访问器方法将会抛出一个IllegalStateException
。
这是所有功能的默认模式,因此包括元数据在内的读取(包括元数据)的读取将尽可能保留尽可能多的信息。
protected boolean canWriteTiles
boolean
是true
如果这ImageWriteParam
允许设置瓦片宽度和瓦片高度参数。
默认值为false
。
子类必须手动设置该值。
不支持写入磁贴的子类应确保此值设置为false
。
protected int tilingMode
MODE_*
之一。
默认值为MODE_COPY_FROM_METADATA
。
不写图块的子类可能会忽略此值。
protected Dimension[] preferredTileSizes
null
,表示没有首选尺寸。
如果值不是null
,那么它的长度必须至少为2。
不支持写图块的子类可能会忽略此值。
getPreferredTileSizes()
protected boolean tilingSet
boolean
是true
,如果已经指定tiling参数。
不支持写图块的子类可能会忽略此值。
protected int tileWidth
不支持平铺的子类可能忽略此值。
protected int tileHeight
0
。
不支持平铺的子类可能忽略此值。
protected boolean canOffsetTiles
boolean
是true
如果这个ImageWriteParam
允许设置平铺网格偏移参数。
默认值为false
。
子类必须手动设置该值。
不支持编写图块的子类,或支持写入但不支持拼贴的子类必须确保此值设置为false
。
protected int tileGridXOffset
0
。
不支持偏移图块的子类可能忽略此值。
protected int tileGridYOffset
0
。
不支持偏移图块的子类可能忽略此值。
protected boolean canWriteProgressive
boolean
是true
如果这个ImageWriteParam
允许图像被写入逐渐增加的质量通行序列。
默认值为false
。
子类必须手动设置该值。
不支持逐行编码的子类必须确保该值设置为false
。
protected int progressiveMode
MODE_*
之一,除了MODE_EXPLICIT
。
默认值为MODE_COPY_FROM_METADATA
。
不支持逐行编码的子类可能忽略此值。
protected boolean canWriteCompressed
boolean
是true
如果这个作者可以使用压缩编写图像。
默认值为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
- a
Locale
用于本地化压缩类型名称和质量描述,或
null
。
public Locale getLocale()
Locale
,或
null
如果只有一个默认
Locale
支持。
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
- 用于平铺的模式。
UnsupportedOperationException
- 如果
canWriteTiles
返回
false
。
IllegalArgumentException
- 如果
mode
不是上面列出的一种模式。
setTiling(int, int, int, int)
,
getTilingMode()
public int getTilingMode()
UnsupportedOperationException
。
UnsupportedOperationException
- 如果
canWriteTiles
返回
false
。
setTilingMode(int)
public Dimension[] getPreferredTileSizes()
Dimension
的数组, Dimension
瓦片的合法尺寸范围,因为它们将被编码在输出文件或流中。
返回的数组是一个副本。
该信息作为一组对返回; 一对的第一个元素包含(包括)最小宽度和高度,第二个元素包含(包含)最大宽度和高度。 在一起,每对都定义了一个有效的大小范围。 要指定固定的大小,请对两个元素使用相同的宽度和高度。 指定任意范围,值null
替代的实际阵列的使用Dimension
秒。
如果在构造函数中没有指定数组,但是允许平铺,则该方法返回null
。
Dimension
的数组,
Dimension
长度至少为2,或
null
。
UnsupportedOperationException
- 如果插件不支持平铺。
public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
tileWidth
和tileHeight
参数指定文件中的图块的宽度和高度。
如果图块宽度或高度大于图像的宽度或高度,则图像不会在该维度中平铺。
如果canOffsetTiles
返回false
,则tileGridXOffset
和tileGridYOffset
参数必须为零。
tileWidth
- 每个瓦片的宽度。
tileHeight
- 每个瓷砖的高度。
tileGridXOffset
- 瓦片网格的水平偏移。
tileGridYOffset
- 瓦片网格的垂直偏移。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不是
MODE_EXPLICIT
。
UnsupportedOperationException
- 如果插件不支持网格偏移,并且网格偏移量不为零。
IllegalArgumentException
-如果瓦片大小不是由返回的容许范围之一内
getPreferredTileSizes
。
IllegalArgumentException
- 如果
tileWidth
或
tileHeight
小于或等于0。
canWriteTiles
,
canOffsetTiles
,
getTileWidth()
,
getTileHeight()
,
getTileGridXOffset()
,
getTileGridYOffset()
public void unsetTiling()
setTiling
。
默认实现将实例变量tileWidth
, tileHeight
, tileGridXOffset
和tileGridYOffset
到0
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不是
MODE_EXPLICIT
。
setTiling(int, int, int, int)
public int getTileWidth()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果平铺参数尚未设置。
setTiling(int, int, int, int)
,
getTileHeight()
public int getTileHeight()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果平铺参数尚未设置。
setTiling(int, int, int, int)
,
getTileWidth()
public int getTileGridXOffset()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持拼贴。
IllegalStateException
- 如果平铺模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果平铺参数尚未设置。
setTiling(int, int, int, int)
,
getTileGridYOffset()
public int getTileGridYOffset()
IllegalStateException
。
UnsupportedOperationException
- 如果插件不支持平铺。
IllegalStateException
- 如果平铺模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果平铺参数尚未设置。
setTiling(int, int, int, int)
,
getTileGridXOffset()
public boolean canWriteProgressive()
true
如果作者可以将图像写成一系列逐渐提高质量的通行证。
true
如果作者支持逐行编码。
setProgressiveMode(int)
,
getProgressiveMode()
public void setProgressiveMode(int mode)
UnsupportedOperationException
。
模式参数确定如何选择progression参数,并且必须是MODE_DISABLED
, MODE_COPY_FROM_METADATA
,或MODE_DEFAULT
。 否则抛出一个IllegalArgumentException
。
模式解释如下:
MODE_DISABLED
- 无进展。 使用它来关闭进度。 MODE_COPY_FROM_METADATA
- 输出图像将使用传入到作者的元数据对象中的任何进度参数。 MODE_DEFAULT
- 图像将逐步写入,并由作者选择参数。 默认值为MODE_COPY_FROM_METADATA
。
mode
- 在输出流中设置进度的模式。
UnsupportedOperationException
- 如果作者不支持逐行编码。
IllegalArgumentException
- 如果
mode
不是上面列出的一种模式。
getProgressiveMode()
public int getProgressiveMode()
UnsupportedOperationException
- 如果作者不支持逐行编码。
setProgressiveMode(int)
public boolean canWriteCompressed()
true
如果此writer支持压缩。
true
如果作者支持压缩。
public void setCompressionMode(int mode)
mode
参数必须是四种模式之一,解释如下:
MODE_DISABLED
- 如果模式设置为MODE_DISABLED
,则查询或修改压缩类型或参数的方法将抛出IllegalStateException
(如果插件通常支持压缩)。 一些作者,例如JPEG,通常不提供未压缩的输出。 在这种情况下,尝试将模式设置为MODE_DISABLED
将会抛出一个UnsupportedOperationException
并且模式不会被更改。 MODE_EXPLICIT
- 使用此ImageWriteParam中指定的压缩类型和质量设置进行ImageWriteParam
。 任何先前设置的压缩参数都被丢弃。 MODE_COPY_FROM_METADATA
- 使用传入到作者的元数据对象中指定的任何压缩参数。 MODE_DEFAULT
- 使用默认压缩参数。 默认值为MODE_COPY_FROM_METADATA
。
mode
- 输出流中设置压缩的模式。
UnsupportedOperationException
- 如果作者不支持压缩,或者不支持请求的模式。
IllegalArgumentException
- 如果
mode
不是上面列出的一种模式。
getCompressionMode()
public int getCompressionMode()
UnsupportedOperationException
- 如果作者不支持压缩。
setCompressionMode(int)
public String[] getCompressionTypes()
String
S,或null
如果压缩类型可以不使用这些接口选择。
返回的数组是一个副本。
如果作者仅提供单一的强制性压缩形式,则不需要提供任何命名的压缩类型。 命名的压缩类型只能在用户能够在不同方案之间进行有意义的选择的地方使用。
默认实现检查压缩是否受支持,如果不支持,则会抛出UnsupportedOperationException
。 否则,它返回的克隆compressionTypes
,如果它是非实例变量null
,否则返回null
。
String
包含可用压缩类型,或的(非本地化)名称
null
。
UnsupportedOperationException
- 如果作者不支持压缩。
public void setCompressionType(String compressionType)
getCompressionTypes
。
如果传入值为null
,则删除以前的任何设置。
默认实现检查压缩是否受支持,压缩模式是否为MODE_EXPLICIT
。 如果是这样,它调用getCompressionTypes
并检查是否compressionType
是合法值之一。 如果是,则设置compressionType
实例变量。 如果compressionType
是null
,那么设置实例变量而不执行任何检查。
compressionType
-
String
返回的
getCompressionTypes
,或
null
删除任何以前的设置。
UnsupportedOperationException
- 如果作者不支持压缩。
IllegalStateException
- 如果压缩模式不是
MODE_EXPLICIT
。
UnsupportedOperationException
- 如果没有可设置的压缩类型。
IllegalArgumentException
- 如果
compressionType
不是
null
但不是由
getCompressionTypes
返回的值
getCompressionTypes
。
getCompressionTypes()
,
getCompressionType()
,
unsetCompression()
public String getCompressionType()
null
如果没有设置。
类型被返回作为String
从那些通过返回getCompressionTypes
。
如果没有设置压缩类型,则返回null
。
默认实现检查压缩是否受支持,压缩模式是否为MODE_EXPLICIT
。 如果是这样,它返回compressionType
实例变量的值。
String
,如果没有设置类型,
null
。
UnsupportedOperationException
- 如果作者不支持压缩。
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()
Locale
通过返回getLocale
。
默认实现检查压缩是否受支持,压缩模式是否为MODE_EXPLICIT
。 如果是,如果compressionType
为non-null
,则返回值为getCompressionType
作为方便。
String
包含当前压缩类型的本地化版本的名称。
UnsupportedOperationException
- 如果作者不支持压缩。
IllegalStateException
- 如果压缩模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果没有设置压缩类型。
public boolean isCompressionLossless()
true
如果当前压缩类型提供无损压缩。
如果插件仅提供一种强制性压缩类型,则可以先调用此方法,而不setCompressionType
调用setCompressionType
。
如果有多种压缩类型,但没有设置,则会抛出一个IllegalStateException
。
默认实现检查压缩是否受支持,压缩模式是否为MODE_EXPLICIT
。 如果是,如果getCompressionTypes()
是null
或getCompressionType()
是非null
true
作为方便返回。
true
如果当前的压缩类型是无损的。
UnsupportedOperationException
- 如果作者不支持压缩。
IllegalStateException
- 如果压缩模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果一组合法的压缩类型是非
null
,当前的压缩类型是
null
。
public void setCompressionQuality(float quality)
0
和1
之间的值。
默认情况下,仅支持单个压缩质量设置;
作者可以提供更多版本的ImageWriteParam
,提供更多的控制。
对于有损压缩方案,压缩质量应该控制文件大小和图像质量之间的折衷(例如,通过在编写JPEG图像时选择量化表)。
对于无损方案,可以使用压缩质量来控制文件大小和执行压缩所花费的时间之间的折衷(例如,通过优化行过滤器并在编写PNG图像时设置ZLIB压缩级别)。
0.0的压缩质量设置最通俗地被解释为“高压缩是重要的”,而1.0的设置最通常被解释为“高图像质量很重要”。
如果有多种压缩类型,但没有设置,则会抛出一个IllegalStateException
。
默认实现检查是否支持压缩,压缩模式为MODE_EXPLICIT
。 如果是,如果getCompressionTypes()
返回null
或compressionType
是非null
它设置compressionQuality
实例变量。
quality
-一个
float
之间
0
和
1
指示期望的质量水平。
UnsupportedOperationException
- 如果作者不支持压缩。
IllegalStateException
- 如果压缩模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果一组法定压缩类型不是
null
,当前的压缩类型是
null
。
IllegalArgumentException
- 如果
quality
不在
0
和
1
之间,包括在内。
getCompressionQuality()
public float getCompressionQuality()
如果有多种压缩类型,但没有设置,则会抛出IllegalStateException
。
默认实现检查压缩是否受支持,压缩模式是MODE_EXPLICIT
。 如果是,如果getCompressionTypes()
是null
或getCompressionType()
是非null
,它返回compressionQuality
实例变量的值。
UnsupportedOperationException
- 如果作者不支持压缩。
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
- 要查询其比特率的质量设置。
-1.0F
,如果没有估计可用。
UnsupportedOperationException
- 如果作者不支持压缩。
IllegalStateException
- 如果压缩模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果一组合法的压缩类型是非
null
,当前的压缩类型是
null
。
IllegalArgumentException
- 如果
quality
不在
0
和
1
之间,包括在内。
public String[] getCompressionQualityDescriptions()
String
可与被用于沿小号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
,如果不是getLocale
,则应对其进行null
。
如果有多种压缩类型,但没有设置,则会抛出IllegalStateException
。
默认实现检查压缩是否受支持,并且压缩模式是MODE_EXPLICIT
。 如果是,如果getCompressionTypes()
是null
或getCompressionType()
是非null
,它返回null
。
String
的数组包含压缩质量等级的本地化描述。
UnsupportedOperationException
- 如果作者不支持压缩。
IllegalStateException
- 如果压缩模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果一组合法的压缩类型是非
null
,当前的压缩类型是
null
。
getCompressionQualityValues()
public float[] getCompressionQualityValues()
getCompressionQualityDescriptions
一起使用的float
s数组,作为设置或显示压缩质量等级的用户界面的一部分。
见getCompressionQualityDescriptions
以获取更多信息。
如果没有可用的描述,则返回null
。 如果null
从getCompressionQualityDescriptions
返回,此方法也必须返回null
。
如果有多种压缩类型,但没有设置,则抛出IllegalStateException
。
默认实现检查压缩是否受支持,压缩模式是MODE_EXPLICIT
。 如果是,如果getCompressionTypes()
是null
或getCompressionType()
是非null
,它返回null
。
float
s的阵列
float
压缩质量水平之间的边界,如String的
String
getCompressionQualityDescriptions
。
UnsupportedOperationException
- 如果写入程序不支持压缩。
IllegalStateException
- 如果压缩模式不是
MODE_EXPLICIT
。
IllegalStateException
- 如果一组合法的压缩类型不是
null
,当前的压缩类型是
null
。
getCompressionQualityDescriptions()