所有类


javax.imageio
类 ImageWriteParam

java.lang.Object
  继承者 javax.imageio.IIOParam
      继承者 javax.imageio.ImageWriteParam
直接已知子类:
BMPImageWriteParam, JPEGImageWriteParam

public class ImageWriteParam
   
   
   
   
   
extends IIOParam

描述如何对流进行编码的类。此类的实例或其子类用于提供 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 网格偏移量参数,则返回为 trueboolean 值。
protected  boolean canWriteCompressed
          如果此 writer 可以使用压缩写入图像,则返回为 trueboolean 值。
protected  boolean canWriteProgressive
          如果此 ImageWriteParam 允许以一个质量递增传递的逐步序列的方式写入图像,则返回为 trueboolean 值。
protected  boolean canWriteTiles
          如果此 ImageWriteParam 允许设置 tile 的宽度和高度参数,则返回为 trueboolean 值。
protected  int compressionMode
          控制压缩设置的模式,必须将它设置为四个 MODE_* 值之一。
protected  float compressionQuality
          包含当前压缩质量设置的 float 值。
protected  String compressionType
          包含当前压缩类型名称的 String,如果没有设置压缩类型,则返回 null
protected  String[] compressionTypes
          包含可用压缩类型名称的 String 数组。
protected  Locale locale
          用于本地化压缩类型名称和质量描述的 Localenull 表示使用默认 Locale
static int MODE_COPY_FROM_METADATA
          一个常量值,可以传入诸如 setTilingModesetProgressiveModesetCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。
static int MODE_DEFAULT
          一个常量值,可以传入诸如 setTilingModesetProgressiveModesetCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。
static int MODE_DISABLED
          一个常量值,可以传入诸如 setTilingModesetProgressiveModesetCompressionMode 之类的方法中,以禁用用于以后的写入操作的某个特征。
static int MODE_EXPLICIT
          一个常量值,可以传入诸如 setTilingModesetCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。
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 参数,则返回一个为 trueboolean 值。
 
从类 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)
          将压缩质量设置为 01 之间的某个值。
 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 网格参数。
 
从类 javax.imageio.IIOParam 继承的方法
activateController, getController, getDefaultController, getDestinationOffset, getDestinationType, getSourceBands, getSourceRegion, getSourceXSubsampling, getSourceYSubsampling, getSubsamplingXOffset, getSubsamplingYOffset, hasController, setController, setDestinationOffset, setDestinationType, setSourceBands, setSourceRegion, setSourceSubsampling
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

MODE_DISABLED

public static final int MODE_DISABLED
一个常量值,可以传入诸如 setTilingModesetProgressiveModesetCompressionMode 之类的方法中,以禁用用于以后的写入操作的某个特征。也就是说,在设置此模式时,该流将被平铺、逐步编码或压缩,相关的访问器方法将抛出 IllegalStateException

另请参见:
MODE_EXPLICIT, MODE_COPY_FROM_METADATA, MODE_DEFAULT, setProgressiveMode(int), getProgressiveMode(), setTilingMode(int), getTilingMode(), setCompressionMode(int), getCompressionMode(), 常量字段值

MODE_DEFAULT

public static final int MODE_DEFAULT
一个常量值,可以传入诸如 setTilingModesetProgressiveModesetCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。也就是说,在启用此模式时,将根据 writer 以与插件有关的方式内部选择的明智默认值来平铺、逐步编码和压缩该流,相关的访问器方法将抛出 IllegalStateException

另请参见:
MODE_DISABLED, MODE_EXPLICIT, MODE_COPY_FROM_METADATA, setProgressiveMode(int), getProgressiveMode(), setTilingMode(int), getTilingMode(), setCompressionMode(int), getCompressionMode(), 常量字段值

MODE_EXPLICIT

public static final int MODE_EXPLICIT
一个常量值,可以传入诸如 setTilingModesetCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。也就是说,在设置此模式时,将根据为此类中的相应 set 方法提供的额外信息和可以从相应 get 方法中检索到的信息来平铺或压缩该流。注意,此模式不支持逐步输出。

另请参见:
MODE_DISABLED, MODE_COPY_FROM_METADATA, MODE_DEFAULT, setProgressiveMode(int), getProgressiveMode(), setTilingMode(int), getTilingMode(), setCompressionMode(int), getCompressionMode(), 常量字段值

MODE_COPY_FROM_METADATA

public static final int MODE_COPY_FROM_METADATA
一个常量值,可以传入诸如 setTilingModesetProgressiveModesetCompressionMode 之类的方法中,以启用用于以后的写入操作的特征。也就是说,在启用此模式时,将根据传入写入操作的流内容和/或图像元数据来平铺、逐步编码和压缩该流,所有相关访问器方法都将抛出 IllegalStateException

这是所有特征的默认模式,因此,如果一个包括元数据的读取操作之后将进行包括元数据的写入操作,则读取操作将保留尽可能多的信息。

另请参见:
MODE_DISABLED, MODE_EXPLICIT, MODE_DEFAULT, setProgressiveMode(int), getProgressiveMode(), setTilingMode(int), getTilingMode(), setCompressionMode(int), getCompressionMode(), 常量字段值

canWriteTiles

protected boolean canWriteTiles
如果此 ImageWriteParam 允许设置 tile 的宽度和高度参数,则返回为 trueboolean 值。默认情况下,该值为 false。子类必须手工设置该值。

不支持写入 tile 的子类应该确保此值被设置为 false


tilingMode

protected int tilingMode
控制 tiling 设置的模式,必须将它设置为以下四个 MODE_* 值之一。默认值为 MODE_COPY_FROM_METADATA

不支持写入 tile 的子类可以忽略此值。

另请参见:
MODE_DISABLED, MODE_EXPLICIT, MODE_COPY_FROM_METADATA, MODE_DEFAULT, setTilingMode(int), getTilingMode()

preferredTileSizes

protected Dimension[] preferredTileSizes
首选 tile 大小范围对组成的数组。默认值为 null,指示没有首选大小。如果该值为非 null 值,则首选大小的平均长度必须至少为 2。

不支持写入 tile 的子类可以忽略此值。

另请参见:
getPreferredTileSizes()

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部