模块 java.desktop

类 ImageWriteParam

java.lang.Object
javax.imageio.IIOParam
javax.imageio.ImageWriteParam
已知子类:
BMPImageWriteParam , JPEGImageWriteParam

public class ImageWriteParam extends IIOParam
描述如何对流进行编码的类。此类或其子类的实例用于向 ImageWriter 的实例提供说明性“操作方法”信息。

特定图像格式的插件可以定义此类的子类,并从其 ImageWriter 实现的 getDefaultWriteParam 方法返回该类的对象。例如,内置的 JPEG 编写器插件将返回 javax.imageio.plugins.jpeg.JPEGImageWriteParam 的实例。

要写入的图像区域首先通过将图像的实际边界与 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实现都必须支持它(例如渐进式编码是可选的,但必须支持子采样)。

参见:
  • 字段详细信息

    • MODE_DISABLED

      public static final int MODE_DISABLED
      一个常量值,可以传递给 setTilingModesetProgressiveModesetCompressionMode 等方法以禁用未来写入的功能。也就是说,设置此模式后,流将not平铺、渐进或压缩,相关的访问器方法将抛出 IllegalStateException
      参见:
    • MODE_DEFAULT

      public static final int MODE_DEFAULT
      一个常量值,可以传递给 setTilingModesetProgressiveModesetCompressionMode 等方法,以便为将来的写入启用该功能。也就是说,当启用此模式时,流将根据编写器以插件相关方式在内部选择的合理默认值进行平铺、渐进或压缩,并且相关的访问器方法将抛出 IllegalStateException
      参见:
    • MODE_EXPLICIT

      public static final int MODE_EXPLICIT
      一个常量值,可以传递给 setTilingModesetCompressionMode 等方法以启用未来写入的功能。也就是说,当设置此模式时,将根据提供给此类中相应 set 方法并可从相应 get 方法检索的附加信息对流进行平铺或压缩。请注意,渐进式输出不支持此模式。
      参见:
    • MODE_COPY_FROM_METADATA

      public static final int MODE_COPY_FROM_METADATA
      一个常量值,可以传递给 setTilingModesetProgressiveModesetCompressionMode 等方法,以便为将来的写入启用该功能。也就是说,启用此模式后,将根据传递到写入操作的流和/或图像元数据的内容对流进行平铺、渐进或压缩,并且任何相关的访问器方法都将抛出 IllegalStateException

      这是所有功能的默认模式,因此包含元数据的读取和随后包含元数据的写入将保留尽可能多的信息。

      参见:
    • canWriteTiles

      protected boolean canWriteTiles
      如果此 ImageWriteParam 允许设置拼贴宽度和拼贴高度参数,则 booleantrue。默认情况下,值为 false 。子类必须手动设置值。

      不支持写入瓦片的子类应确保将此值设置为 false

    • tilingMode

      protected int tilingMode
      控制平铺设置的模式,必须设置为四个 MODE_* 值之一。默认值为 MODE_COPY_FROM_METADATA

      不写瓦片的子类可以忽略这个值。

      参见:
    • preferredTileSizes

      protected Dimension [] preferredTileSizes
      首选图块大小范围对的数组。默认值为 null ,表示没有首选尺寸。如果值为非null,则它的长度必须至少为偶数 2。

      不支持写瓦片的子类可以忽略这个值。

      参见:
    • tilingSet

      protected boolean tilingSet
      如果指定了平铺参数,则为 boolean true

      不支持写瓦片的子类可以忽略这个值。

    • tileWidth

      protected int tileWidth
      如果已设置平铺,则每个平铺的宽度,否则为 0。

      不支持平铺的子类可以忽略这个值。

    • tileHeight

      protected int tileHeight
      如果已设置平铺,则每个平铺的高度,否则为 0。初始值为 0

      不支持平铺的子类可以忽略这个值。

    • canOffsetTiles

      protected boolean canOffsetTiles
      如果此 ImageWriteParam 允许设置平铺网格偏移参数,则 booleantrue。默认情况下,值为 false 。子类必须手动设置值。

      不支持写入瓦片或支持写入但不支持偏移瓦片的子类必须确保将此值设置为 false

    • tileGridXOffset

      protected int tileGridXOffset
      如果已设置平铺,则平铺网格原点应从图像原点水平偏移的量,否则为 0。初始值为 0

      不支持偏移图块的子类可能会忽略此值。

    • tileGridYOffset

      protected int tileGridYOffset
      如果已设置平铺,则平铺网格原点应从图像原点垂直偏移的量,否则为 0。初始值为 0

      不支持偏移图块的子类可能会忽略此值。

    • canWriteProgressive

      protected boolean canWriteProgressive
      booleantrue 如果此 ImageWriteParam 允许将图像写入为递增质量通道的渐进序列。默认情况下,值为 false 。子类必须手动设置值。

      不支持渐进式编码的子类必须确保此值设置为 false

    • progressiveMode

      protected int progressiveMode
      控制渐进式编码的模式,必须设置为四个 MODE_* 值之一,MODE_EXPLICIT 除外。默认值为 MODE_COPY_FROM_METADATA

      不支持渐进式编码的子类可以忽略这个值。

      参见:
    • canWriteCompressed

      protected boolean canWriteCompressed
      一个 boolean 就是 true 如果这个作家可以使用压缩来写图像。默认情况下,值为 false 。子类必须手动设置值。

      不支持压缩的子类必须确保将此值设置为 false

    • compressionMode

      protected int compressionMode
      控制压缩设置的模式,必须设置为四个 MODE_* 值之一。默认值为 MODE_COPY_FROM_METADATA

      不支持压缩的子类可以忽略这个值。

      参见:
    • compressionTypes

      protected String [] compressionTypes
      包含可用压缩类型名称的 String 数组。子类必须手动设置值。

      不支持压缩的子类可以忽略这个值。

    • compressionType

      protected String  compressionType
      包含当前压缩类型名称的 String,如果未设置则为 null

      不支持压缩的子类可以忽略这个值。

    • compressionQuality

      protected float compressionQuality
      包含当前压缩质量设置的 float。初始值为 1.0F

      不支持压缩的子类可以忽略这个值。

    • locale

      protected Locale  locale
      Locale 用于本地化压缩类型名称和质量描述,或 null 使用默认 Locale 。子类必须手动设置值。
  • 构造方法详细信息

    • ImageWriteParam

      protected ImageWriteParam()
      构造一个空的 ImageWriteParam 。由子类正确设置实例变量。
    • ImageWriteParam

      public ImageWriteParam(Locale  locale)
      构造一个 ImageWriteParam 集以使用给定的 Locale
      参数:
      locale - 用于本地化压缩类型名称和质量描述的 Locale,或 null
  • 方法详情

    • getLocale

      public Locale  getLocale()
      返回当前设置的 Localenull(如果仅支持默认的 Locale)。
      返回:
      当前的 Localenull
    • canWriteTiles

      public boolean canWriteTiles()
      如果编写器可以在写入时执行平铺,则返回 true。如果此方法返回 false,则 setTiling 将抛出 UnsupportedOperationException
      返回:
      true 如果编写器支持平铺。
      参见:
    • canOffsetTiles

      public boolean canOffsetTiles()
      如果编写器可以在写入时使用非零网格偏移执行平铺,则返回 true。如果此方法返回 false ,那么 setTiling 将抛出 UnsupportedOperationException 如果网格偏移量参数不均为零。如果 canWriteTiles 返回 false ,此方法也将返回 false
      返回:
      true 如果编写器支持非零平铺偏移。
      参见:
    • setTilingMode

      public void setTilingMode(int mode)
      确定图像是否将在输出流中平铺,如果是,将如何确定平铺参数。这些模式解释如下:
      • MODE_DISABLED - 图像不会平铺。 setTiling 会抛出一个 IllegalStateException
      • MODE_DEFAULT - 图像将使用默认参数平铺。 setTiling 会抛出一个 IllegalStateException
      • MODE_EXPLICIT - 图像将根据 setTiling 方法中给出的参数进行平铺。任何先前设置的平铺参数都将被丢弃。
      • MODE_COPY_FROM_METADATA - 图像将符合传入写入的元数据对象。 setTiling 会抛出一个 IllegalStateException
      参数:
      mode - 用于平铺的模式。
      抛出:
      UnsupportedOperationException - 如果 canWriteTiles 返回 false
      IllegalArgumentException - 如果 mode 不是上面列出的模式之一。
      参见:
    • getTilingMode

      public int getTilingMode()
      如果支持平铺,则返回当前平铺模式。否则抛出一个 UnsupportedOperationException
      返回:
      当前平铺模式。
      抛出:
      UnsupportedOperationException - 如果 canWriteTiles 返回 false
      参见:
    • getPreferredTileSizes

      public Dimension [] getPreferredTileSizes()
      返回一个 Dimension 数组,指示图块的合法大小范围,因为它们将在输出文件或流中进行编码。返回的数组是一个副本。

      信息以成对的形式返回;一对中的第一个元素包含(含)最小宽度和高度,第二个元素包含(含)最大宽度和高度。每对一起定义了一个有效的尺寸范围。要指定固定大小,请为两个元素使用相同的宽度和高度。要指定任意范围,使用 null 的值代替实际的 Dimension 数组。

      如果在构造函数中未指定数组,但允许平铺,则此方法返回 null

      返回:
      一个 Dimension 的数组,其长度至少为两个,或 null
      抛出:
      UnsupportedOperationException - 如果插件不支持平铺。
    • setTiling

      public void setTiling(int tileWidth, int tileHeight, int tileGridXOffset, int tileGridYOffset)
      指定图像应在输出流中平铺。 tileWidthtileHeight 参数指定文件中图块的宽度和高度。如果平铺宽度或高度大于图像的宽度或高度,则图像不会在该维度上平铺。

      如果 canOffsetTiles 返回 false ,则 tileGridXOffsettileGridYOffset 参数必须为零。

      参数:
      tileWidth - 每个图块的宽度。
      tileHeight - 每个图块的高度。
      tileGridXOffset - 瓷砖网格的水平偏移。
      tileGridYOffset - 瓷砖网格的垂直偏移。
      抛出:
      UnsupportedOperationException - 如果插件不支持平铺。
      IllegalStateException - 如果平铺模式不是 MODE_EXPLICIT
      UnsupportedOperationException - 如果插件不支持网格偏移,并且网格偏移不都为零。
      IllegalArgumentException - 如果图块大小不在 getPreferredTileSizes 返回的允许范围之一内。
      IllegalArgumentException - 如果 tileWidthtileHeight 小于或等于 0。
      参见:
    • unsetTiling

      public void unsetTiling()
      删除调用 setTiling 指定的任何先前的图块网格参数。

      默认实现将实例变量 tileWidthtileHeighttileGridXOffsettileGridYOffset 设置为 0

      抛出:
      UnsupportedOperationException - 如果插件不支持平铺。
      IllegalStateException - 如果平铺模式不是 MODE_EXPLICIT
      参见:
    • getTileWidth

      public int getTileWidth()
      返回图像中每个图块的宽度,因为它将被写入输出流。如果未设置平铺参数,则会抛出 IllegalStateException
      返回:
      用于编码的图块宽度。
      抛出:
      UnsupportedOperationException - 如果插件不支持平铺。
      IllegalStateException - 如果平铺模式不是 MODE_EXPLICIT
      IllegalStateException - 如果尚未设置平铺参数。
      参见:
    • getTileHeight

      public int getTileHeight()
      返回图像中每个图块的高度,因为它将被写入输出流。如果未设置平铺参数,则会抛出 IllegalStateException
      返回:
      用于编码的图块高度。
      抛出:
      UnsupportedOperationException - 如果插件不支持平铺。
      IllegalStateException - 如果平铺模式不是 MODE_EXPLICIT
      IllegalStateException - 如果尚未设置平铺参数。
      参见:
    • getTileGridXOffset

      public int getTileGridXOffset()
      返回图像的水平平铺网格偏移量,因为它将被写入输出流。如果未设置平铺参数,则会抛出 IllegalStateException
      返回:
      用于编码的图块网格 X 偏移量。
      抛出:
      UnsupportedOperationException - 如果插件不支持平铺。
      IllegalStateException - 如果平铺模式不是 MODE_EXPLICIT
      IllegalStateException - 如果尚未设置平铺参数。
      参见:
    • getTileGridYOffset

      public int getTileGridYOffset()
      返回图像的垂直平铺网格偏移量,因为它将被写入输出流。如果未设置平铺参数,则会抛出 IllegalStateException
      返回:
      用于编码的图块网格 Y 偏移量。
      抛出:
      UnsupportedOperationException - 如果插件不支持平铺。
      IllegalStateException - 如果平铺模式不是 MODE_EXPLICIT
      IllegalStateException - 如果尚未设置平铺参数。
      参见:
    • canWriteProgressive

      public boolean canWriteProgressive()
      如果作者可以将图像写成一系列质量逐渐提高的通道,则返回 true
      返回:
      true 如果编写器支持渐进式编码。
      参见:
    • setProgressiveMode

      public void setProgressiveMode(int mode)
      指定编写器以渐进模式写出图像,以便流将包含一系列质量不断提高的扫描。如果不支持渐进式编码,将抛出 UnsupportedOperationException

      mode 参数确定如何选择级数参数,并且必须是 MODE_DISABLEDMODE_COPY_FROM_METADATAMODE_DEFAULT 之一。否则抛出 IllegalArgumentException

      这些模式解释如下:

      • MODE_DISABLED - 没有进展。使用它来关闭进度。
      • MODE_COPY_FROM_METADATA - 输出图像将使用在传递给编写器的元数据对象中找到的任何进展参数。
      • MODE_DEFAULT - 图像将逐步写入,使用作者选择的参数。

      默认值为 MODE_COPY_FROM_METADATA

      参数:
      mode - 在输出流中设置进度的模式。
      抛出:
      UnsupportedOperationException - 如果编写器不支持渐进式编码。
      IllegalArgumentException - 如果 mode 不是上面列出的模式之一。
      参见:
    • getProgressiveMode

      public int getProgressiveMode()
      返回以渐进方式写入流的当前模式。
      返回:
      渐进式编码的当前模式。
      抛出:
      UnsupportedOperationException - 如果编写器不支持渐进式编码。
      参见:
    • canWriteCompressed

      public boolean canWriteCompressed()
      如果此编写器支持压缩,则返回 true
      返回:
      true 如果作者支持压缩。
    • setCompressionMode

      public void setCompressionMode(int mode)
      指定是否要执行压缩,如果是,则如何确定压缩参数。 mode 参数必须是四种模式之一,解释如下:
      • MODE_DISABLED - 如果模式设置为 MODE_DISABLED ,查询或修改压缩类型或参数的方法将抛出 IllegalStateException(如果插件通常支持压缩)。一些编写器(例如 JPEG)通常不提供未压缩的输出。在这种情况下,尝试将模式设置为 MODE_DISABLED 将抛出 UnsupportedOperationException 并且模式不会更改。
      • MODE_EXPLICIT - 使用此 ImageWriteParam 中指定的压缩类型和质量设置进行压缩。任何先前设置的压缩参数都将被丢弃。
      • MODE_COPY_FROM_METADATA - 使用传递给编写器的元数据对象中指定的任何压缩参数。
      • MODE_DEFAULT - 使用默认压缩参数。

      默认值为 MODE_COPY_FROM_METADATA

      参数:
      mode - 在输出流中设置压缩的模式。
      抛出:
      UnsupportedOperationException - 如果编写器不支持压缩,或者不支持请求的模式。
      IllegalArgumentException - 如果 mode 不是上面列出的模式之一。
      参见:
    • getCompressionMode

      public int getCompressionMode()
      如果支持压缩,则返回当前压缩模式。
      返回:
      当前的压缩模式。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      参见:
    • getCompressionTypes

      public String [] getCompressionTypes()
      返回可用压缩类型的列表,作为数组或 String s,或者 null 如果不能使用这些接口选择压缩类型。返回的数组是一个副本。

      如果作者只提供单一的、强制的压缩形式,则没有必要提供任何命名的压缩类型。仅当用户能够在不同方案之间做出有意义的选择时,才应使用命名的压缩类型。

      默认实现检查是否支持压缩,如果不支持则抛出 UnsupportedOperationException。否则,它返回 compressionTypes 实例变量的克隆(如果它不是 null ),否则返回 null

      返回:
      包含可用压缩类型的(非本地化)名称的 String 数组,或 null
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
    • setCompressionType

      public void setCompressionType(String  compressionType)
      将压缩类型设置为 getCompressionTypes 指示的值之一。如果传入值 null,则会删除任何先前的设置。

      默认实现检查是否支持压缩,压缩模式为 MODE_EXPLICIT 。如果是,它调用 getCompressionTypes 并检查 compressionType 是否为合法值之一。如果是,则设置 compressionType 实例变量。如果 compressionTypenull ,则在不执行任何检查的情况下设置实例变量。

      参数:
      compressionType - getCompressionTypes 返回的 String 之一,或 null 以删除任何先前的设置。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      UnsupportedOperationException - 如果没有可设置的压缩类型。
      IllegalArgumentException - 如果 compressionType 是非 null 但不是 getCompressionTypes 返回的值之一。
      参见:
    • getCompressionType

      public String  getCompressionType()
      返回当前设置的压缩类型,如果没有设置则返回 null。该类型作为 StringgetCompressionTypes 返回的类型中返回。如果未设置压缩类型,则返回null

      默认实现检查是否支持压缩,压缩模式为 MODE_EXPLICIT 。如果是,它返回 compressionType 实例变量的值。

      返回:
      当前压缩类型为 String ,如果未设置类型则为 null
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      参见:
    • unsetCompression

      public void unsetCompression()
      删除任何以前的压缩类型和质量设置。

      默认实现将实例变量 compressionType 设置为 null ,并将实例变量 compressionQuality 设置为 1.0F

      抛出:
      UnsupportedOperationException - 如果插件不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      参见:
    • getLocalizedCompressionTypeName

      public String  getLocalizedCompressionTypeName()
      使用 getLocale 返回的 Locale 返回当前压缩类型名称的本地化版本。

      默认实现检查是否支持压缩,压缩模式为 MODE_EXPLICIT 。如果是这样,如果 compressionTypenon-null,则为方便起见返回 getCompressionType 的值。

      返回:
      String 包含当前压缩类型名称的本地化版本。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      IllegalStateException - 如果未设置压缩类型。
    • isCompressionLossless

      public boolean isCompressionLossless()
      如果当前压缩类型提供无损压缩,则返回 true。如果插件仅提供一种强制压缩类型,则可以调用此方法而无需先调用setCompressionType

      如果有多种压缩类型但尚未设置,则会抛出 IllegalStateException

      默认实现检查是否支持压缩,压缩模式为 MODE_EXPLICIT 。如果是这样,如果 getCompressionTypes()nullgetCompressionType() 是非 null true 为方便起见返回。

      返回:
      true 如果当前压缩类型是无损的。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      IllegalStateException - 如果合法压缩类型集是非 null 并且当前压缩类型是 null
    • setCompressionQuality

      public void setCompressionQuality(float quality)
      将压缩质量设置为 01 之间的值。默认只支持单一的压缩质量设置;作者可以提供 ImageWriteParam 的扩展版本,提供更多控制。对于有损压缩方案,压缩质量应该控制文件大小和图像质量之间的权衡(例如,通过在写入 JPEG 图像时选择量化表)。对于无损方案,压缩质量可用于控制文件大小和执行压缩所需时间之间的权衡(例如,通过优化行过滤器和在写入 PNG 图像时设置 ZLIB 压缩级别)。

      0.0 的压缩质量设置通常被解释为“高压缩很重要”,而 1.0 的设置通常被解释为“高图像质量很重要”。

      如果有多种压缩类型但尚未设置,则会抛出 IllegalStateException

      默认实现检查是否支持压缩,以及压缩模式是否为 MODE_EXPLICIT 。如果是这样,如果 getCompressionTypes() 返回 nullcompressionType 是非 null 它设置 compressionQuality 实例变量。

      参数:
      quality - 01 之间的 float 表示所需的质量级别。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      IllegalStateException - 如果合法压缩类型集是非 null 并且当前压缩类型是 null
      IllegalArgumentException - 如果 quality 不在 01 之间,包括在内。
      参见:
    • getCompressionQuality

      public float getCompressionQuality()
      返回当前的压缩质量设置。

      如果有多种压缩类型但尚未设置,则会抛出 IllegalStateException

      默认实现检查是否支持压缩以及压缩模式是否为 MODE_EXPLICIT 。如果是这样,如果 getCompressionTypes()nullgetCompressionType() 是非 null ,它返回 compressionQuality 实例变量的值。

      返回:
      当前的压缩质量设置。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      IllegalStateException - 如果合法压缩类型集是非 null 并且当前压缩类型是 null
      参见:
    • getBitRate

      public float getBitRate(float quality)
      返回一个 float 指示在给定质量级别下输入图像数据的每一位的输出数据位数的估计值。该值通常位于 01 之间,值越小表示压缩越多。 -1.0F 的特殊值用于指示没有可用的估计值。

      如果有多种压缩类型但尚未设置,则会抛出 IllegalStateException

      默认实现检查是否支持压缩并且压缩模式为 MODE_EXPLICIT 。如果是这样,如果 getCompressionTypes()nullgetCompressionType() 是非 null,并且 quality 在范围内,它返回 -1.0

      参数:
      quality - 要查询其比特率的质量设置。
      返回:
      压缩比特率的估计值,如果没有可用估计值,则为 -1.0F
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      IllegalStateException - 如果合法压缩类型集是非 null 并且当前压缩类型是 null
      IllegalArgumentException - 如果 quality 不在 01 之间,包括在内。
    • getCompressionQualityDescriptions

      public String [] getCompressionQualityDescriptions()
      返回一个 String 数组,可以与 getCompressionQualityValues 一起用作用户界面的一部分,用于设置或显示压缩质量级别。带有索引 iString 描述了 getCompressionQualityValues[i]getCompressionQualityValues[i + 1] 之间的质量水平范围。请注意,从 getCompressionQualityValues 返回的数组长度始终比从 getCompressionQualityDescriptions 返回的数组长度大 1。

      例如,字符串“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 不是null,则描述应该本地化。

      如果有多种压缩类型但尚未设置,则会抛出 IllegalStateException

      默认实现检查是否支持压缩以及压缩模式是否为 MODE_EXPLICIT 。如果是这样,如果 getCompressionTypes()nullgetCompressionType() 是非 null ,它返回 null

      返回:
      包含压缩质量级别本地化描述的 String 数组。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      IllegalStateException - 如果合法压缩类型集是非 null 并且当前压缩类型是 null
      参见:
    • getCompressionQualityValues

      public float[] getCompressionQualityValues()
      返回一个 float 数组,可以与 getCompressionQualityDescriptions 一起用作用户界面的一部分,用于设置或显示压缩质量级别。有关详细信息,请参阅 getCompressionQualityDescriptions

      如果没有可用的描述,则返回 null。如果从 getCompressionQualityDescriptions 返回 null,则此方法也必须返回 null

      如果有多种压缩类型但尚未设置,则会抛出 IllegalStateException

      默认实现检查是否支持压缩以及压缩模式是否为 MODE_EXPLICIT 。如果是这样,如果 getCompressionTypes()nullgetCompressionType() 是非 null ,它返回 null

      返回:
      float 的数组,指示压缩质量级别之间的边界,如 getCompressionQualityDescriptions 中的 String 所述。
      抛出:
      UnsupportedOperationException - 如果作者不支持压缩。
      IllegalStateException - 如果压缩模式不是 MODE_EXPLICIT
      IllegalStateException - 如果合法压缩类型集是非 null 并且当前压缩类型是 null
      参见: