javax.imageio

接口
异常
java.lang.Object
  继承者 javax.imageio.ImageWriter
所有已实现的接口:
ImageTranscoder

public abstract class ImageWriter
     
extends Object
implements ImageTranscoder

用来编码和写入图像的抽象超类。此类必须由在 Java Image I/O 框架的上下文中写出图像的类为其创建子类。

通常由特定格式的服务提供者类对 ImageWriter 对象进行实例化。服务提供者类在 IIORegistry 中注册,后者使用前者进行格式识别和表示可用格式 reader 和 writer。

另请参见:
ImageReader, ImageWriteParam, IIORegistry, ImageWriterSpi

字段摘要
protected  Locale[] availableLocales
          可以用来本地化警告消息和压缩设置值的 Locale 组成的数组,如果本地化不受支持,则将它们初始化为 null
protected  Locale locale
          用于本地化的当前 Locale,如果没有设置 Locale,则将它初始化为 null
protected  ImageWriterSpi originatingProvider
          实例化此对象的 ImageWriterSpi,如果 ImageWriterSpi 的标识是未知的或不存在,则将此对象实例化为 null
protected  Object output
          由 setOutput 设置并由 getOutput 获取的 ImageOutputStream 或其他 Object
protected  List<IIOWriteProgressListener> progressListeners
          当前已注册 IIOWriteProgressListenerList,默认情况下将它初始化为 null,它与空 List 同义。
protected  List<IIOWriteWarningListener> warningListeners
          当前已注册 IIOWriteWarningListenerList,默认情况下将它初始化为 null,它与空 List 同义。
protected  List<Locale> warningLocales
          LocaleListwarningListeners 的每个元素都有一个 Locale 列表,默认情况下该列表被初始化为 null,它与空 List 同义。
 
构造方法摘要
protected ImageWriter(ImageWriterSpi originatingProvider)
          构造一个 ImageWriter,并将其 originatingProvider 实例变量设置为所提供的值。
 
方法摘要
 void abort()
          请求中止任何当前写入操作。
protected  boolean abortRequested()
          如果自从 writer 被实例化或 clearAbortRequest 被调用开始,已经发出中止当前写入操作的请求,则返回 true
 void addIIOWriteProgressListener(IIOWriteProgressListener listener)
          将 IIOWriteProgressListener 添加到已注册的进度侦听器列表中。
 void addIIOWriteWarningListener(IIOWriteWarningListener listener)
          将 IIOWriteWarningListener 添加到已注册的警告侦听器的列表中。
 boolean canInsertEmpty(int imageIndex)
          如果 writer 支持在给定索引处插入新的空图像,则返回 true
 boolean canInsertImage(int imageIndex)
          如果 writer 支持在给定索引处插入新图像,则返回 true
 boolean canRemoveImage(int imageIndex)
          如果 writer 支持在给定索引处移除现有图像,则返回 true
 boolean canReplaceImageMetadata(int imageIndex)
          如果有可能使用索引 imageIndex 替换与现有图像有关的图像元数据,则返回 true
 boolean canReplacePixels(int imageIndex)
          如果 writer 允许使用 replacePixels 方法替换给定图像的索引,则返回 true
 boolean canReplaceStreamMetadata()
          如果有可能替换已存在于输出中的流元数据,则返回 true
 boolean canWriteEmpty()
          如果 writer 支持写入由单个图像组成的完整图像流,则返回 true,这些对象带有要输出的不确定像素值、有关元数据和缩略图。
 boolean canWriteRasters()
          如果采用 IIOImage 参数的方法能够处理 Raster(相对于 RenderedImage)源图像,则返回 true
 boolean canWriteSequence()
          如果 writer 能够将图像添加到已经包含头信息和可能的以前图像的图像流中,则返回 true
protected  void clearAbortRequest()
          清除任何以前的中止请求。
abstract  IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
          返回一个 IIOMetadata 对象,该对象可用于编码,并且可以使用其文档接口或特定于将用于编码的 writer 插件的其他接口有选择地对其进行修改。
abstract  IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
          返回一个 IIOMetadata 对象,该对象可用于编码,并且可以使用其文档接口或特定于将用于编码的 writer 插件的其他接口有选择地对其进行修改。
 void dispose()
          允许释放此对象保存的所有资源。
 void endInsertEmpty()
          完成对新图像的插入,该操作是从以前调用 prepareInsertEmpty 开始的。
 void endReplacePixels()
          终止调用 replacePixels 的序列。
 void endWriteEmpty()
          完成对新图像的写入,该操作是从优先调用 prepareWriteEmpty 开始的。
 void endWriteSequence()
          完成以 prepareWriteSequence 开头的一系列图像的写入。
 Locale[] getAvailableLocales()
          返回可用来初始化警告侦听器和压缩设置的 Locale 组成的数组。
abstract  IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param)
          返回包含用来编码给定类型图像的默认值的 IIOMetadata 对象。
abstract  IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
          返回包含用来对图像流进行编码的默认值的 IIOMetadata 对象。
 ImageWriteParam getDefaultWriteParam()
          返回适用于此文件格式的适当类型的新 ImageWriteParam 对象,该对象包含默认值,即那些将在没有指定 ImageWriteParam 对象时使用的值。
 Locale getLocale()
          返回当前设置的 Locale,如果没有设置 Locale,则返回 null
 int getNumThumbnailsSupported(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
          返回受将写入的格式、给定图像类型和任何其他 write 参数支持的缩略图,以及将在编码期间使用的元数据对象。
 ImageWriterSpi getOriginatingProvider()
          返回创建此 ImageWriterImageWriterSpi 对象,如果此对象不是通过 IIORegistry 创建的,则返回 null
 Object getOutput()
          返回 ImageOutputStream 或最近一次调用 setOutput 方法设置的其他 Object如果没有设置目标,则返回 null
 Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata)
          返回一个 Dimension 数组,指示在输出文件或流中进行编码时合法的缩略图大小范围。
 void prepareInsertEmpty(int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
          从将带有不确定像素值的新图像插入现有图像流中开始。
 void prepareReplacePixels(int imageIndex, Rectangle region)
          准备好 writer,处理一系列对 replacePixels 方法的调用。
 void prepareWriteEmpty(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param)
          从写入完整图像流开始,该图像流由带有要输出的不确定像素值、有关元数据和缩略图的单个图像组成。
 void prepareWriteSequence(IIOMetadata streamMetadata)
          使用提供的流元数据对象准备一个流,以接受一系列的后续 writeToSequence 调用。
protected  void processImageComplete()
          通过调用 imageComplete 方法向所有已注册 IIOWriteProgressListener 广播图像写入的完成。
protected  void processImageProgress(float percentageDone)
          通过调用 imageProgress 方法向所有已注册 IIOWriteProgressListener 广播图像完成的当前百分比。
protected  void processImageStarted(int imageIndex)
          通过调用 imageStarted 方法向所有已注册 IIOWriteProgressListener 广播开始写入图像的起始处。
protected  void processThumbnailComplete()
          通过调用 thumbnailComplete 方法向所有已注册 IIOWriteProgressListener 广播缩略图写入的完成。
protected  void processThumbnailProgress(float percentageDone)
          通过调用 thumbnailProgress 方法向所有已注册 IIOWriteProgressListener 广播缩略图完成的当前百分比。
protected  void processThumbnailStarted(int imageIndex, int thumbnailIndex)
          通过调用 thumbnailStarted 方法向所有已注册 IIOWriteProgressListener 广播缩略图写入的起始处。
protected  void processWarningOccurred(int imageIndex, String warning)
          通过调用 warningOccurred 方法向所有已注册 IIOWriteWarningListener 广播一条警告消息。
protected  void processWarningOccurred(int imageIndex, String baseName, String keyword)
          通过使用取自 ResourceBundle 的字符串调用 warningOccurred 方法来向所有已注册 IIOWriteWarningListener 广播一条本地化警告消息。
protected  void processWriteAborted()
          通过调用 readAborted 方法向对所有已注册 IIOWriteProgressListener 广播写入已经中止。
 void removeAllIIOWriteProgressListeners()
          移除所有当前已注册的 IIOWriteProgressListener 对象。
 void removeAllIIOWriteWarningListeners()
          移除所有当前已注册的 IIOWriteWarningListener 对象。
 void removeIIOWriteProgressListener(IIOWriteProgressListener listener)
          从已注册的进度侦听器列表中移除 IIOWriteProgressListener
 void removeIIOWriteWarningListener(IIOWriteWarningListener listener)
          从已注册的警告侦听器列表中移除 IIOWriteWarningListener
 void removeImage(int imageIndex)
          从流中移除图像。
 void replaceImageMetadata(int imageIndex, IIOMetadata imageMetadata)
          替换与现有图像有关的图像元数据。
 void replacePixels(Raster raster, ImageWriteParam param)
          用给定 Raster 部分替换已出现在输出中的图像部分。
 void replacePixels(RenderedImage image, ImageWriteParam param)
          用给定图像部分替换已出现在输出中的图像部分。
 void replaceStreamMetadata(IIOMetadata streamMetadata)
          使用新信息替换输出中的流元数据。
 void reset()
          将 ImageWriter 恢复到其初始状态。
 void setLocale(Locale locale)
          将此 ImageWriter 的当前 Locale 设置为给定值。
 void setOutput(Object output)
          将目标设置为给定 ImageOutputStream 或其他 Object
 void write(IIOImage image)
          将包含带有默认元数据和缩略图的单个图像的完整图像流添加到输出中。
abstract  void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param)
          添加一个完整的图像流,该图像流包含一幅图像、相关的流、图像元数据和要输出的缩略图。
 void write(RenderedImage image)
          将由带有默认元数据和缩略图的单个图像组成的完整图像流添加到输出中。
 void writeInsert(int imageIndex, IIOImage image, ImageWriteParam param)
          将新的图像插入现有图像流。
 void writeToSequence(IIOImage image, ImageWriteParam param)
          将单幅图像、可能相关的元数据和缩略图添加到输出中。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

originatingProvider

protected ImageWriterSpi originatingProvider
实例化此对象的 ImageWriterSpi,如果 ImageWriterSpi 的标识是未知的或不存在,则将此对象实例化为 null。默认情况下,将此对象实例化为 null


output

protected Object output
setOutput 设置并由 getOutput 获取的 ImageOutputStream 或其他 Object。默认情况下,将此对象实例化为 null


availableLocales

protected Locale[] availableLocales
可以用来本地化警告消息和压缩设置值的 Locale 组成的数组,如果本地化不受支持,则将它们初始化为 null。默认情况下,将它们初始化为 null


locale

protected Locale locale
用于本地化的当前 Locale,如果没有设置 Locale,则将它初始化为 null。默认情况下,将 Locale 初始化为 null


warningListeners

protected List<IIOWriteWarningListener> warningListeners
当前已注册 IIOWriteWarningListenerList,默认情况下将它初始化为 null,它与空 List 同义。


warningLocales

protected List<Locale> warningLocales
LocaleListwarningListeners 的每个元素都有一个 Locale 列表,默认情况下该列表被初始化为 null,它与空 List 同义。


progressListeners

protected List<IIOWriteProgressListener> progressListeners
当前已注册 IIOWriteProgressListenerList,默认情况下将它初始化为 null,它与空 List 同义。

构造方法详细信息

ImageWriter

protected ImageWriter(ImageWriterSpi originatingProvider)
构造一个 ImageWriter,并将其 originatingProvider 实例变量设置为所提供的值。

为了获取扩展对象,利用扩展的子类应该为构造方法提供签名 (ImageWriterSpi, Object)。如果扩展对象不合适,则将抛出 IllegalArgumentException

参数:
originatingProvider - 构造此对象的 ImageWriterSpi,或者为 null
方法详细信息

getOriginatingProvider

public ImageWriterSpi getOriginatingProvider()
返回创建此 ImageWriterImageWriterSpi 对象,如果此对象不是通过 IIORegistry 创建的,则返回 null

默认的实现返回 originatingProvider 实例变量的值。

返回:
一个 ImageWriterSpinull
另请参见:
ImageWriterSpi

setOutput

public void setOutput(Object output)
将目标设置为给定 ImageOutputStream 或其他 Object。假定目标已准备接受数据,并将在结束每次写入时关闭。这允许受干扰的图像处理应用程序通过单独的网络连接传输一系列图像。如果 outputnull,则将移除所有当前已设置的输出。

如果 output 是一个 ImageOutputStream,则调用 writewriteToSequenceprepareWriteEmpty/endWriteEmpty 方法将保留流的现有内容。其他写入方法,比如 writeInsertreplaceStreamMetadatareplaceImageMetadatareplacePixelsprepareInsertEmpty/endInsertEmptyendWriteSequence,要求可读取和写入该流的全部内容,并且可以更改该流的任何部分。

对于直接与输出设备或图像协议交互的 writer,打算使用一般的 Object,而不是使用 ImageOutputStream。合法类集是由 writer 的服务提供者的 getOutputTypes 方法公开的。大多数 writer 将返回一个单个元素组成的数组,该数组只包含指示它们只接受 ImageOutputStreamImageOutputStream.class

在根据原始提供者(如果有)公开的类集合检查 output 之后,默认实现将 output 实例变量设置为 output 的值。

参数:
output - 用于以后的写入的 ImageOutputStream 或其他 Object
抛出:
IllegalArgumentException - 如果 output 不是原始服务提供者的 getOutputTypes 方法返回的某个类的实例。
另请参见:
getOutput()

getOutput

public Object getOutput()
返回 ImageOutputStream 或最近一次调用 setOutput 方法设置的其他 Object如果没有设置目标,则返回 null

默认实现返回 output 实例变量的值。

返回:
使用 setOutput 指定的 Object,或者返回 null
另请参见:
setOutput(java.lang.Object)

getAvailableLocales

public Locale[] getAvailableLocales()
返回可用来初始化警告侦听器和压缩设置的 Locale 组成的数组。返回 null 值指示初始化不受支持。

如果 availableLocales 实例变量是非 null 的,则默认实现返回该变量的副本,否则返回 null

返回:
可能用作 setLocale 的参数的 Locale 组成的数组,或者返回 null

setLocale

public void setLocale(Locale locale)
将此 ImageWriter 的当前 Locale 设置为给定值。值为 null 则移除所有以前的设置,并指示 writer 应该根据需要对其进行初始化。

默认实现根据 getAvailableLocales 返回的值检查 locale,并设置 locale 实例变量(如果查找到的话)。如果 localenull,则将该实例变量设置为 null,不必执行任何检查。

参数:
locale - 所需的 Locale,或者为 null
抛出:
IllegalArgumentException - 如果 locale 为非 null,但它不是 getAvailableLocales 返回的值之一。
另请参见:
getLocale()

getLocale

public Locale getLocale()
返回当前设置的 Locale,如果没有设置 Locale,则返回 null

默认实现返回 locale 实例变量的值。

返回:
当前 Localenull
另请参见:
setLocale(java.util.Locale)

getDefaultWriteParam

public ImageWriteParam getDefaultWriteParam()
返回适用于此文件格式的适当类型的新 ImageWriteParam 对象,该对象包含默认值,即那些将在没有指定 ImageWriteParam 对象时使用的值。将此作为只调整少数几个参数并不管默认设置的起点很有用。

默认设置构造并返回一个新的 ImageWriteParam 对象,该对象不允许平铺、逐步编码或压缩,并且将针对当前 Locale 通过调用 new ImageWriteParam(getLocale()) 获得的 Locale)对该对象进行本地化。

个别插件可能在启用额外可选特性的情况下返回 ImageWriteParam 的实例,或者它们可以返回 ImageWriteParam 的特定于插件的子类的实例。

返回:
包含默认值的新的 ImageWriteParam 对象。

getDefaultStreamMetadata

public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
返回包含用来对图像流进行编码的默认值的 IIOMetadata 对象。该对象的内容可以使用由 IIOMetadata.getAsTree 方法返回的 XML 树型结构(一个 IIOMetadataController 对象)来操作,或者通过特定于插件的接口以及提供给某一带有流元数据参数的 write 方法的所得数据来操作。

可以对可能影响流元数据结构的情况提供一个可选的 ImageWriteParam

如果所提供的 ImageWriteParam 包含不受此 writer 支持的可选设置值(例如 逐步编码或任何特定于格式的设置),则将忽略这些设置。

不使用流元数据的 writer(例如 用于单一图像格式的 writer)应该返回 null

参数:
param - 将用于对图像进行编码的 ImageWriteParam,或者为 null
返回:
IIOMetadata 对象。

getDefaultImageMetadata

public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType,
                                                    ImageWriteParam param)
返回包含用来编码给定类型图像的默认值的 IIOMetadata 对象。该对象的内容可以使用由 IIOMetadata.getAsTree 方法返回的 XML 树型结构(一个 IIOMetadataController 对象)来操作,或者通过特定于插件的接口以及提供给某一带有流元数据参数的 write 方法的所得数据来操作。

可以对可能影响图像元数据结构的情况提供一个可选的 ImageWriteParam

如果所提供的 ImageWriteParam 包含不受此 writer 支持的可选设置值(例如 逐步编码或任何特定于格式的设置),则将忽略这些设置。

参数:
imageType - 指示稍后将写入的图像格式的 ImageTypeSpecifier
param - 将用于对图像进行编码的 ImageWriteParam,或者为 null
返回:
IIOMetadata 对象。

convertStreamMetadata

public abstract IIOMetadata convertStreamMetada