java.lang.Object javax.imageio.ImageWriter
public abstract class ImageWriter
用来编码和写入图像的抽象超类。此类必须由在 Java Image I/O 框架的上下文中写出图像的类为其创建子类。
通常由特定格式的服务提供者类对 ImageWriter
对象进行实例化。服务提供者类在 IIORegistry
中注册,后者使用前者进行格式识别和表示可用格式 reader 和 writer。
字段摘要 | |
---|---|
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 当前已注册 IIOWriteProgressListener 的 List ,默认情况下将它初始化为 null ,它与空 List 同义。 |
protected List<IIOWriteWarningListener> |
warningListeners 当前已注册 IIOWriteWarningListener 的 List ,默认情况下将它初始化为 null ,它与空 List 同义。 |
protected List<Locale> |
warningLocales Locale 的 List ,warningListeners 的每个元素都有一个 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() 返回创建此 ImageWriter 的 ImageWriterSpi 对象,如果此对象不是通过 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 |
字段详细信息 |
---|
protected ImageWriterSpi originatingProvider
ImageWriterSpi
,如果 ImageWriterSpi 的标识是未知的或不存在,则将此对象实例化为
null
。默认情况下,将此对象实例化为
null
。
protected Object output
setOutput
设置并由
getOutput
获取的
ImageOutputStream
或其他
Object
。默认情况下,将此对象实例化为
null
。
protected Locale[] availableLocales
Locale
组成的数组,如果本地化不受支持,则将它们初始化为
null
。默认情况下,将它们初始化为
null
。
protected Locale locale
Locale
,如果没有设置 Locale,则将它初始化为
null
。默认情况下,将 Locale 初始化为
null
。
protected List<IIOWriteWarningListener> warningListeners
IIOWriteWarningListener
的
List
,默认情况下将它初始化为
null
,它与空
List
同义。
protected List<Locale> warningLocales
Locale
的
List
,
warningListeners
的每个元素都有一个 Locale 列表,默认情况下该列表被初始化为
null
,它与空
List
同义。
protected List<IIOWriteProgressListener> progressListeners
IIOWriteProgressListener
的
List
,默认情况下将它初始化为
null
,它与空
List
同义。
构造方法详细信息 |
---|
protected ImageWriter(ImageWriterSpi originatingProvider)
ImageWriter
,并将其
originatingProvider
实例变量设置为所提供的值。
为了获取扩展对象,利用扩展的子类应该为构造方法提供签名 (ImageWriterSpi, Object)
。如果扩展对象不合适,则将抛出 IllegalArgumentException
。
originatingProvider
- 构造此对象的
ImageWriterSpi
,或者为
null
。
方法详细信息 |
---|
public ImageWriterSpi getOriginatingProvider()
ImageWriter
的
ImageWriterSpi
对象,如果此对象不是通过
IIORegistry
创建的,则返回
null
。
默认的实现返回 originatingProvider
实例变量的值。
ImageWriterSpi
或
null
。
ImageWriterSpi
public void setOutput(Object output)
ImageOutputStream
或其他
Object
。假定目标已准备接受数据,并将在结束每次写入时关闭。这允许受干扰的图像处理应用程序通过单独的网络连接传输一系列图像。如果
output
为
null
,则将移除所有当前已设置的输出。
如果 output
是一个 ImageOutputStream
,则调用 write
、writeToSequence
和 prepareWriteEmpty
/endWriteEmpty
方法将保留流的现有内容。其他写入方法,比如 writeInsert
、replaceStreamMetadata
、replaceImageMetadata
、replacePixels
、prepareInsertEmpty
/endInsertEmpty
和 endWriteSequence
,要求可读取和写入该流的全部内容,并且可以更改该流的任何部分。
对于直接与输出设备或图像协议交互的 writer,打算使用一般的 Object
,而不是使用 ImageOutputStream
。合法类集是由 writer 的服务提供者的 getOutputTypes
方法公开的。大多数 writer 将返回一个单个元素组成的数组,该数组只包含指示它们只接受 ImageOutputStream
的 ImageOutputStream.class
。
在根据原始提供者(如果有)公开的类集合检查 output
之后,默认实现将 output
实例变量设置为 output
的值。
output
- 用于以后的写入的
ImageOutputStream
或其他
Object
。
IllegalArgumentException
- 如果
output
不是原始服务提供者的
getOutputTypes
方法返回的某个类的实例。
getOutput()
public Object getOutput()
ImageOutputStream
或最近一次调用
setOutput
方法设置的其他
Object
如果没有设置目标,则返回
null
。
默认实现返回 output
实例变量的值。
setOutput
指定的
Object
,或者返回
null
。
setOutput(java.lang.Object)
public Locale[] getAvailableLocales()
Locale
组成的数组。返回
null
值指示初始化不受支持。
如果 availableLocales
实例变量是非 null
的,则默认实现返回该变量的副本,否则返回 null
。
setLocale
的参数的
Locale
组成的数组,或者返回
null
。
public void setLocale(Locale locale)
ImageWriter
的当前
Locale
设置为给定值。值为
null
则移除所有以前的设置,并指示 writer 应该根据需要对其进行初始化。
默认实现根据 getAvailableLocales
返回的值检查 locale
,并设置 locale
实例变量(如果查找到的话)。如果 locale
为 null
,则将该实例变量设置为 null
,不必执行任何检查。
locale
- 所需的
Locale
,或者为
null
。
IllegalArgumentException
- 如果
locale
为非
null
,但它不是
getAvailableLocales
返回的值之一。
getLocale()
public Locale getLocale()
Locale
,如果没有设置 Locale,则返回
null
。
默认实现返回 locale
实例变量的值。
Locale
或
null
。
setLocale(java.util.Locale)
public ImageWriteParam getDefaultWriteParam()
ImageWriteParam
对象,该对象包含默认值,即那些将在没有指定
ImageWriteParam
对象时使用的值。将此作为只调整少数几个参数并不管默认设置的起点很有用。
默认设置构造并返回一个新的 ImageWriteParam
对象,该对象不允许平铺、逐步编码或压缩,并且将针对当前 Locale
(即 通过调用 new ImageWriteParam(getLocale())
获得的 Locale)对该对象进行本地化。
个别插件可能在启用额外可选特性的情况下返回 ImageWriteParam
的实例,或者它们可以返回 ImageWriteParam
的特定于插件的子类的实例。
ImageWriteParam
对象。
public abstract IIOMetadata getDefaultStreamMetadata(ImageWriteParam param)
IIOMetadata
对象。该对象的内容可以使用由
IIOMetadata.getAsTree
方法返回的 XML 树型结构(一个
IIOMetadataController
对象)来操作,或者通过特定于插件的接口以及提供给某一带有流元数据参数的
write
方法的所得数据来操作。
可以对可能影响流元数据结构的情况提供一个可选的 ImageWriteParam
。
如果所提供的 ImageWriteParam
包含不受此 writer 支持的可选设置值(例如 逐步编码或任何特定于格式的设置),则将忽略这些设置。
不使用流元数据的 writer(例如 用于单一图像格式的 writer)应该返回 null
。
param
- 将用于对图像进行编码的
ImageWriteParam
,或者为
null
。
IIOMetadata
对象。
public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param)
IIOMetadata
对象。该对象的内容可以使用由
IIOMetadata.getAsTree
方法返回的 XML 树型结构(一个
IIOMetadataController
对象)来操作,或者通过特定于插件的接口以及提供给某一带有流元数据参数的
write
方法的所得数据来操作。
可以对可能影响图像元数据结构的情况提供一个可选的 ImageWriteParam
。
如果所提供的 ImageWriteParam
包含不受此 writer 支持的可选设置值(例如 逐步编码或任何特定于格式的设置),则将忽略这些设置。
imageType
- 指示稍后将写入的图像格式的
ImageTypeSpecifier
。
param
- 将用于对图像进行编码的
ImageWriteParam
,或者为
null
。
IIOMetadata
对象。
public abstract IIOMetadata convertStreamMetada