- 所有已实现的接口:
-
ImageTranscoder
ImageWriter
对象通常由特定格式的服务提供者类实例化。服务提供者类已在IIORegistry
中注册,IIORegistry
用于格式识别和显示可用格式的读取器和写入器。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionprotected Locale[]
可用于本地化警告消息和压缩设置值的Locale
数组,如果不支持本地化,则为null
。protected Locale
用于本地化的当前Locale
,如果未设置则为null
。protected ImageWriterSpi
实例化此对象的ImageWriterSpi
,如果其标识未知或不存在,则为null
。protected Object
由setOutput
设置并由getOutput
检索的ImageOutputStream
或其他Object
。protected List
<IIOWriteProgressListener> 当前注册的IIOWriteProgressListener
列表,默认初始化为null
,与空List
同义。protected List
<IIOWriteWarningListener> 当前注册的IIOWriteWarningListener
列表,默认初始化为null
,与空List
同义。一个Locale
列表,每个元素对应warningListeners
的一个元素,默认初始化为null
,与空List
同义。 -
Constructor Summary
ModifierConstructorDescriptionprotected
ImageWriter
(ImageWriterSpi originatingProvider) 构造一个ImageWriter
并将其originatingProvider
实例变量设置为提供的值。 -
Method Summary
Modifier and TypeMethodDescriptionvoid
abort()
请求中止当前写操作。protected boolean
如果自实例化以来已发出中止当前写操作的请求或已调用clearAbortRequest
,则返回true
。void
将IIOWriteProgressListener
添加到已注册进度侦听器列表中。void
将IIOWriteWarningListener
添加到已注册警告侦听器列表中。boolean
canInsertEmpty
(int imageIndex) 如果写入器支持在给定索引处插入新的空图像,则返回true
。boolean
canInsertImage
(int imageIndex) 如果写入器支持在给定索引处插入新图像,则返回true
。boolean
canRemoveImage
(int imageIndex) 如果写入器支持删除给定索引处的现有图像,则返回true
。boolean
canReplaceImageMetadata
(int imageIndex) 如果可以替换与索引imageIndex
关联的现有图像的图像元数据,则返回true
。boolean
canReplacePixels
(int imageIndex) 如果写入器允许使用replacePixels
方法替换给定图像的像素,则返回true
。boolean
如果可以替换输出中已存在的流元数据,则返回true
。boolean
如果写入器支持写入完整图像流,该流由单个具有未定义像素值和相关元数据和缩略图的图像组成,则返回true
。boolean
如果接受IIOImage
参数的方法能够处理Raster
(而不是RenderedImage
)源图像,则返回true
。boolean
如果写入器能够将图像附加到已包含标头信息和可能先前图像的图像流中,则返回true
。protected void
清除任何先前的中止请求。void
dispose()
允许释放此对象持有的任何资源。void
完成以前调用prepareInsertEmpty
开始的新图像的插入。void
终止对replacePixels
的一系列调用。void
完成以前调用prepareWriteEmpty
开始的新图像的写入。void
完成以prepareWriteSequence
开始的一系列图像的写入。Locale[]
返回一个Locale
数组,可用于本地化警告侦听器和压缩设置。abstract IIOMetadata
getDefaultImageMetadata
(ImageTypeSpecifier imageType, ImageWriteParam param) 返回包含给定类型图像的编码的默认值的IIOMetadata
对象。abstract IIOMetadata
返回包含编码图像流的默认值的IIOMetadata
对象。返回适用于此文件格式的ImageWriteParam
对象的默认值,即如果未指定ImageWriteParam
对象,则将使用这些值。返回当前设置的Locale
,如果未设置则返回null
。int
getNumThumbnailsSupported
(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata) 返回在编码期间将使用的附加写参数和元数据对象的情况下,支持的输出文件中的缩略图数量。返回创建此ImageWriter
的ImageWriterSpi
对象,如果此对象不是通过IIORegistry
创建的,则返回null
。返回最近一次调用setOutput
方法设置的ImageOutputStream
或其他Object
。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) 准备写入器以处理对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
通过调用它们的imageComplete
方法向所有已注册的IIOWriteProgressListener
广播图像写入的完成。protected void
processImageProgress
(float percentageDone) 通过调用它们的imageProgress
方法向所有已注册的IIOWriteProgressListener
广播当前图像完成的百分比。protected void
processImageStarted
(int imageIndex) 通过调用它们的imageStarted
方法向所有已注册的IIOWriteProgressListener
广播图像写入的开始。protected void
通过调用它们的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
通过调用它们的writeAborted
方法向所有已注册的IIOWriteProgressListener
广播写入已中止的消息。void
移除所有当前注册的IIOWriteProgressListener
对象。void
移除所有当前注册的IIOWriteWarningListener
对象。void
从已注册的进度侦听器列表中移除一个IIOWriteProgressListener
。void
从已注册的警告侦听器列表中移除一个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
将此ImageWriter
的当前Locale
设置为给定值。void
将目的地设置为给定的ImageOutputStream
或其他Object
。void
write
(RenderedImage image) 将包含默认元数据和缩略图的单个图像的完整图像流附加到输出。void
将包含默认元数据和缩略图的单个图像的完整图像流附加到输出。abstract void
write
(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) 将包含单个图像及相关流和图像元数据和缩略图的完整图像流附加到输出。void
writeInsert
(int imageIndex, IIOImage image, ImageWriteParam param) 将新图像插入到现有图像流中。void
writeToSequence
(IIOImage image, ImageWriteParam param) 将单个图像及可能相关的元数据和缩略图附加到输出。Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods declared in interface javax.imageio.ImageTranscoder
convertImageMetadata, convertStreamMetadata
-
Field Details
-
originatingProvider
实例化此对象的ImageWriterSpi
,如果其标识未知或不存在,则为null
。默认情况下,它初始化为null
。 -
output
由setOutput
设置并由getOutput
检索的ImageOutputStream
或其他Object
。默认情况下,它初始化为null
。 -
availableLocales
可用于本地化警告消息和压缩设置值的Locale
数组,如果不支持本地化,则为null
。默认情况下,它初始化为null
。 -
locale
用于本地化的当前Locale
,如果尚未设置,则为null
。默认情况下,它被初始化为null
。 -
warningListeners
当前注册的IIOWriteWarningListener
的List
,默认情况下初始化为null
,与空List
同义。 -
warningLocales
一个List
,包含每个warningListeners
元素的Locale
,默认情况下初始化为null
,与空List
同义。 -
progressListeners
当前注册的IIOWriteProgressListener
的List
,默认情况下初始化为null
,与空List
同义。
-
-
Constructor Details
-
ImageWriter
构造一个ImageWriter
并将其originatingProvider
实例变量设置为提供的值。使用扩展的子类应该提供一个带有签名
(ImageWriterSpi, Object)
的构造函数,以便检索扩展对象。如果扩展对象不合适,则应抛出IllegalArgumentException
。- 参数:
-
originatingProvider
- 构造此对象的ImageWriterSpi
,或null
。
-
-
Method Details
-
getOriginatingProvider
返回创建此ImageWriter
的ImageWriterSpi
对象,如果此对象不是通过IIORegistry
创建的,则返回null
。默认实现返回
originatingProvider
实例变量的值。- 返回:
-
一个
ImageWriterSpi
,或null
。 - 参见:
-
setOutput
将目的地设置为给定的ImageOutputStream
或其他Object
。假定目的地已准备好接受数据,并且不会在每次写入结束时关闭。这允许分布式成像应用程序通过单个网络连接传输一系列图像。如果output
为null
,则将删除任何当前设置的输出。如果
output
是ImageOutputStream
,则对write
、writeToSequence
和prepareWriteEmpty
/endWriteEmpty
方法的调用将保留流的现有内容。其他写入方法,如writeInsert
、replaceStreamMetadata
、replaceImageMetadata
、replacePixels
、prepareInsertEmpty
/endInsertEmpty
和endWriteSequence
,需要流的全部内容可读可写,并且可能更改流的任何部分。除了
ImageOutputStream
之外的一般Object
的使用适用于直接与输出设备或成像协议交互的写入器。合法类的集合由写入器的服务提供程序的getOutputTypes
方法进行广告;大多数写入器将返回一个只包含ImageOutputStream.class
的单元素数组,以指示它们仅接受ImageOutputStream
。默认实现在检查
output
与原始提供程序广告的类集合之间的匹配后,将output
实例变量设置为output
的值。- 参数:
-
output
- 用于将来写入的ImageOutputStream
或其他Object
。 - 抛出:
-
IllegalArgumentException
- 如果output
不是由原始服务提供程序的getOutputTypes
方法返回的类之一的实例。 - 参见:
-
getOutput
返回最近一次调用setOutput
方法设置的ImageOutputStream
或其他Object
。如果尚未设置目的地,则返回null
。默认实现返回
output
实例变量的值。- 返回:
-
通过
setOutput
指定的Object
,或null
。 - 参见:
-
getAvailableLocales
返回一个Locale
数组,可用于本地化警告侦听器和压缩设置。返回null
表示不支持本地化。如果
availableLocales
实例变量为非null
,则默认实现返回availableLocales
实例变量的克隆,否则返回null
。- 返回:
-
一个
Locale
数组,可用作setLocale
的参数,或null
。
-
setLocale
将此ImageWriter
的当前Locale
设置为给定值。值为null
会删除任何先前的设置,并指示写入器应根据自己的判断进行本地化。默认实现检查
locale
与getAvailableLocales
返回的值是否匹配,并在找到时设置locale
实例变量。如果locale
为null
,则实例变量将被设置为null
而不进行任何检查。- 参数:
-
locale
- 所需的Locale
,或null
。 - 抛出:
-
IllegalArgumentException
- 如果locale
为非null
但不是getAvailableLocales
返回的值之一。 - 参见:
-
getLocale
返回当前设置的Locale
,如果尚未设置,则返回null
。默认实现返回
locale
实例变量的值。- 返回:
-
当前
Locale
,或null
。 - 参见:
-
getDefaultWriteParam
返回适用于此文件格式的ImageWriteParam
对象的新实例,包含默认值,即如果未指定ImageWriteParam
对象,则将使用的值。这对于调整仅有少量参数并保持默认设置不变非常有用。默认实现构造并返回一个新的
ImageWriteParam
对象,不允许平铺、渐进编码或压缩,并且将为当前Locale
本地化(即,通过调用new ImageWriteParam(getLocale())
获得的值)。各个插件可以返回启用了其他可选功能的
ImageWriteParam
实例,或者它们可以返回ImageWriteParam
的插件特定子类的实例。- 返回:
-
包含默认值的新
ImageWriteParam
对象。
-
getDefaultStreamMetadata
返回包含编码图像流的默认值的IIOMetadata
对象。可以使用由IIOMetadata.getAsTree
方法返回的XML树结构、IIOMetadataController
对象或通过插件特定接口操纵对象的内容,并将生成的数据提供给接受流元数据参数的write
方法之一。在可能影响流元数据结构的情况下,可以提供可选的
ImageWriteParam
。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。不使用流元数据的写入器(例如,单图像格式的写入器)应返回
null
。- 参数:
-
param
- 将用于编码图像的ImageWriteParam
,或null
。 - 返回:
-
一个
IIOMetadata
对象。
-
getDefaultImageMetadata
public abstract IIOMetadata getDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param) 返回包含编码给定类型图像的默认值的IIOMetadata
对象。可以使用由IIOMetadata.getAsTree
方法返回的XML树结构、IIOMetadataController
对象或通过插件特定接口操纵对象的内容,并将生成的数据提供给接受图像元数据参数的write
方法之一。在可能影响图像元数据结构的情况下,可以提供可选的
ImageWriteParam
。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。- 参数:
-
imageType
- 指示稍后要写入的图像格式的ImageTypeSpecifier
。 -
param
- 将用于编码图像的ImageWriteParam
,或null
。 - 返回:
-
一个
IIOMetadata
对象。
-
getNumThumbnailsSupported
public int getNumThumbnailsSupported(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata) 返回正在写入的格式支持的缩略图数量,给定图像类型以及在编码期间将使用的任何其他写入参数和元数据对象。返回值为-1
表示没有足够的信息可用。可以选择提供
ImageWriteParam
,以便在可能影响缩略图处理的情况下使用。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。默认实现返回0。
- 参数:
-
imageType
- 一个指示要写入的图像类型的ImageTypeSpecifier
,或null
。 -
param
- 将用于写入的ImageWriteParam
,或null
。 -
streamMetadata
- 将用于写入的IIOMetadata
对象,或null
。 -
imageMetadata
- 将用于写入的IIOMetadata
对象,或null
。 - 返回:
-
根据提供的参数返回可能写入的缩略图数量,如果信息不足则返回
-1
。
-
getPreferredThumbnailSizes
public Dimension[] getPreferredThumbnailSizes(ImageTypeSpecifier imageType, ImageWriteParam param, IIOMetadata streamMetadata, IIOMetadata imageMetadata) 返回一个Dimension
数组,指示缩略图图像在输出文件或流中编码时的合法大小范围。此信息仅供参考;写入器将根据需要调整任何提供的缩略图大小。信息以一组对的形式返回;一对的第一个元素包含一个(包含的)最小宽度和高度,第二个元素包含一个(包含的)最大宽度和高度。每对一起定义一个有效的大小范围。要指定固定大小,两个元素的宽度和高度将相同。返回值为
null
表示大小是任意的或未知的。可以选择提供一个
ImageWriteParam
,以处理缩略图处理的情况。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。默认实现返回
null
。- 参数:
-
imageType
- 一个指示要写入的图像类型的ImageTypeSpecifier
,或null
。 -
param
- 将用于写入的ImageWriteParam
,或null
。 -
streamMetadata
- 将用于写入的IIOMetadata
对象,或null
。 -
imageMetadata
- 将用于写入的IIOMetadata
对象,或null
。 - 返回:
-
至少有两个偶数长度的
Dimension
数组,或null
。
-
canWriteRasters
public boolean canWriteRasters()如果接受一个Raster
(而不是RenderedImage
)源图像的方法能够处理IIOImage
参数,则返回true
。如果此方法返回false
,那么如果提供了包含Raster
的IIOImage
,这些方法将抛出UnsupportedOperationException
。默认实现返回
false
。- 返回:
-
如果支持
Raster
源,则返回true
。
-
write
public abstract void write(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) throws IOException 将包含单个图像、相关流和图像元数据以及缩略图的完整图像流附加到输出。将包含任何必要的头信息。如果输出是ImageOutputStream
,则在当前寻位位置之前的现有内容不受影响,不需要可读或可写。必须事先使用
setOutput
方法设置输出。可以选择提供流元数据;如果为
null
,将使用默认流元数据。如果
canWriteRasters
返回true
,则IIOImage
可能包含Raster
源。否则,必须包含RenderedImage
源。如果需要,提供的缩略图将被调整大小,超出支持数量的任何缩略图将被忽略。如果格式需要提供未提供的额外缩略图,则写入器应在内部生成它们。
可以选择提供
ImageWriteParam
以控制写入过程。如果param
为null
,将使用默认写入参数。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。- 参数:
-
streamMetadata
- 表示流元数据的IIOMetadata
对象,或null
以使用默认值。 -
image
- 包含要写入的图像、缩略图和元数据的IIOImage
对象。 -
param
- 一个ImageWriteParam
,或null
以使用默认的ImageWriteParam
。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
UnsupportedOperationException
- 如果image
包含Raster
且canWriteRasters
返回false
。 -
IllegalArgumentException
- 如果image
为null
。 -
IOException
- 如果在写入过程中发生错误。
-
write
将包含默认元数据和缩略图的单个图像流附加到输出。此方法是write(null, image, null)
的简写。- 参数:
-
image
- 包含要写入的图像、缩略图和元数据的IIOImage
对象。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
IllegalArgumentException
- 如果image
为null
。 -
UnsupportedOperationException
- 如果image
包含Raster
且canWriteRasters
返回false
。 -
IOException
- 如果在写入过程中发生错误。
-
write
将包含默认元数据和缩略图的单个图像流附加到输出。此方法是write(null, new IIOImage(image, null, null), null)
的简写。- 参数:
-
image
- 要写入的RenderedImage
。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
IllegalArgumentException
- 如果image
为null
。 -
IOException
- 如果在写入过程中发生错误。
-
canWriteSequence
public boolean canWriteSequence()如果写入器能够将图像附加到已包含头信息和可能先前图像的图像流中,则返回true
。如果
canWriteSequence
返回false
,writeToSequence
和endWriteSequence
将抛出UnsupportedOperationException
。默认实现返回
false
。- 返回:
-
如果可以按顺序附加图像,则返回
true
。
-
prepareWriteSequence
使用提供的流元数据对象准备流以接受一系列后续的writeToSequence
调用。如果应在图像数据之前写入元数据,则将元数据写入流。如果参数为null
,则使用默认流元数据。如果输出是
ImageOutputStream
,则在此方法之前刷新输出在当前寻位位置之前的现有内容,不需要可读或可写。如果格式要求endWriteSequence
能够倒带以修补头信息,例如单个TIFF文件中的一系列图像,则此方法写入的元数据必须保留在流的可写部分。其他格式可能会在此方法之后和每个图像之后刷新流。如果
canWriteSequence
返回false
,此方法将抛出UnsupportedOperationException
。必须事先使用
setOutput
方法设置输出。默认实现如果输出为
null
则抛出IllegalStateException
,否则抛出UnsupportedOperationException
。- 参数:
-
streamMetadata
- 一个流元数据对象,或null
。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
UnsupportedOperationException
- 如果canWriteSequence
返回false
。 -
IOException
- 如果写入流元数据时发生错误。
-
writeToSequence
追加单个图像及可能相关的元数据和缩略图到输出。如果输出是一个ImageOutputStream
,则当前寻位位置之前的输出内容可能会被刷新,不需要可读或可写,除非插件需要在调用endWriteSequence
时修补头信息(例如TIFF)。如果
canWriteSequence
返回false
,此方法将抛出UnsupportedOperationException
异常。必须事先使用
setOutput
方法设置输出。必须事先调用
prepareWriteSequence
,否则将抛出IllegalStateException
异常。如果
canWriteRasters
返回true
,则IIOImage
可能包含Raster
源。否则,必须包含RenderedImage
源。提供的缩略图将根据需要调整大小,超出支持数量的任何缩略图将被忽略。如果格式需要提供未提供的额外缩略图,则编写器将在内部生成它们。
可以选择提供一个
ImageWriteParam
来控制写入过程。如果param
为null
,将使用默认的写入参数。如果提供的
ImageWriteParam
包含此编写器不支持的可选设置值(例如渐进编码或任何特定格式的设置),它们将被忽略。如果输出为
null
,默认实现将抛出IllegalStateException
,否则将抛出UnsupportedOperationException
。- 参数:
-
image
- 包含要写入的图像、缩略图和元数据的IIOImage
对象。 -
param
- 一个ImageWriteParam
,或null
以使用默认的ImageWriteParam
。 - 抛出:
-
IllegalStateException
- 如果未设置输出,或未调用prepareWriteSequence
。 -
UnsupportedOperationException
- 如果canWriteSequence
返回false
。 -
IllegalArgumentException
- 如果image
为null
。 -
UnsupportedOperationException
- 如果image
包含Raster
且canWriteRasters
返回false
。 -
IOException
- 如果写入过程中发生错误。
-
endWriteSequence
完成使用prepareWriteSequence
开始的图像序列的写入。将写出应该出现在图像序列末尾的任何流元数据,并在必要时修补序列开头的任何头信息。如果输出是一个ImageOutputStream
,则通过流元数据结束时的数据将被刷新,不需要可读或可写。如果
canWriteSequence
返回false
,此方法将抛出UnsupportedOperationException
异常。如果输出为
null
,默认实现将抛出IllegalStateException
,否则将抛出UnsupportedOperationException
。- 抛出:
-
IllegalStateException
- 如果未设置输出,或未调用prepareWriteSequence
。 -
UnsupportedOperationException
- 如果canWriteSequence
返回false
。 -
IOException
- 如果写入过程中发生错误。
-
canReplaceStreamMetadata
如果可能替换输出中已存在的流元数据,则返回true
。如果输出为
null
,默认实现将抛出IllegalStateException
,否则返回false
。- 返回:
-
true
表示允许替换流元数据。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
IOException
- 如果在查询过程中发生I/O错误。
-
replaceStreamMetadata
用新信息替换输出中的流元数据。如果输出是一个ImageOutputStream
,则将检查并可能编辑流的先前内容以为新数据腾出空间。输出的所有先前内容必须可供读取和写入。如果
canReplaceStreamMetadata
返回false
,将抛出UnsupportedOperationException
异常。如果输出为
null
,默认实现将抛出IllegalStateException
,否则将抛出UnsupportedOperationException
。- 参数:
-
streamMetadata
- 表示流元数据的IIOMetadata
对象,或null
以使用默认值。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
UnsupportedOperationException
- 如果canReplaceStreamMetadata
返回false
。 -
IOException
- 如果写入过程中发生错误。
-
canReplaceImageMetadata
如果可以替换与索引imageIndex
对应的现有图像的图像元数据,则返回true
。如果此方法返回false
,则调用replaceImageMetadata(imageIndex)
将抛出UnsupportedOperationException
异常。不支持任何图像元数据替换的编写器可能会返回
false
,而不对索引进行边界检查。如果输出为
null
,默认实现将抛出IllegalStateException
,否则将根据imageIndex
的值返回false
。- 参数:
-
imageIndex
- 要替换其元数据的图像的索引。 - 返回:
-
true
表示可以替换给定图像的图像元数据。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
IndexOutOfBoundsException
- 如果编写器通常支持图像元数据替换,但imageIndex
小于0或大于最大可用索引。 -
IOException
- 如果在查询过程中发生I/O错误。
-
replaceImageMetadata
替换与现有图像关联的图像元数据。如果
canReplaceImageMetadata(imageIndex)
返回false
,将抛出UnsupportedOperationException
异常。如果输出为
null
,默认实现将抛出IllegalStateException
,否则将抛出UnsupportedOperationException
。- 参数:
-
imageIndex
- 要替换其元数据的图像的索引。 -
imageMetadata
- 表示图像元数据的IIOMetadata
对象,或null
。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
UnsupportedOperationException
- 如果canReplaceImageMetadata
返回false
。 -
IndexOutOfBoundsException
- 如果imageIndex
小于0或大于最大可用索引。 -
IOException
- 如果写入过程中发生错误。
-
canInsertImage
如果编写器支持在给定索引处插入新图像,则返回true
。索引大于或等于插入索引的现有图像的索引将增加1。可以使用-1
的值作为比当前最大索引大1的索引。不支持任何图像插入的编写器可能会返回
false
,而不对索引进行边界检查。如果输出为
null
,默认实现将抛出IllegalStateException
,否则将根据imageIndex
的值返回false
。- 参数:
-
imageIndex
- 要插入图像的索引。 - 返回:
-
true
表示可以在给定索引处插入图像。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
IndexOutOfBoundsException
- 如果编写器通常支持图像插入,但imageIndex
小于-1或大于最大可用索引。 -
IOException
- 如果在查询过程中发生I/O错误。
-
writeInsert
插入新图像到现有图像流中。保留索引大于imageIndex
的现有图像,并且它们的索引都增加1。可以使用imageIndex
为-1来表示比先前最大索引大1的索引;也就是说,它将导致图像逻辑上附加到序列的末尾。如果输出是一个ImageOutputStream
,则整个流必须可读且可写。如果
canInsertImage(imageIndex)
返回false
,将抛出UnsupportedOperationException
异常。可以选择提供一个
ImageWriteParam
来控制写入过程。如果param
为null
,将使用默认的写入参数。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。如果输出为
null
,默认实现会抛出IllegalStateException
,否则会抛出UnsupportedOperationException
。- 参数:
-
imageIndex
- 要写入图像的索引。 -
image
- 包含要写入的图像、缩略图和元数据的IIOImage
对象。 -
param
- 一个ImageWriteParam
,或者null
以使用默认的ImageWriteParam
。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
UnsupportedOperationException
- 如果canInsertImage(imageIndex)
返回false
。 -
IllegalArgumentException
- 如果image
为null
。 -
IndexOutOfBoundsException
- 如果imageIndex
小于-1或大于最大可用索引。 -
UnsupportedOperationException
- 如果image
包含一个Raster
且canWriteRasters
返回false
。 -
IOException
- 如果写入过程中发生错误。
-
canRemoveImage
如果写入器支持删除给定索引处现有图像,则返回true
。具有大于插入索引的索引的现有图像的索引将减少1。不支持任何图像删除的写入器可能会在不对索引进行边界检查的情况下返回
false
。默认实现会抛出
IllegalStateException
(如果输出为null
),否则会返回false
而不检查imageIndex
的值。- 参数:
-
imageIndex
- 要删除的图像的索引。 - 返回:
-
true
如果可以删除给定的图像。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
IndexOutOfBoundsException
- 如果写入器通常支持图像删除,但imageIndex
小于0或大于最大可用索引。 -
IOException
- 如果在查询过程中发生I/O错误。
-
removeImage
从流中移除图像。如果
canRemoveImage(imageIndex)
返回false,将抛出UnsupportedOperationException
异常。移除可能会或可能不会导致实际文件大小的减小。
默认实现会抛出
IllegalStateException
(如果输出为null
),否则会抛出UnsupportedOperationException
。- 参数:
-
imageIndex
- 要移除的图像的索引。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
UnsupportedOperationException
- 如果canRemoveImage(imageIndex)
返回false
。 -
IndexOutOfBoundsException
- 如果imageIndex
小于0或大于最大可用索引。 -
IOException
- 如果在移除过程中发生I/O错误。
-
canWriteEmpty
如果写入器支持将由未定义像素值和相关元数据和缩略图组成的单个图像的完整图像流写入输出,则返回true
。像素值可以通过将来调用replacePixels
方法来定义。如果输出是一个ImageOutputStream
,则在当前寻址位置之前的现有内容不受影响,也不需要可读或可写。默认实现会抛出
IllegalStateException
(如果输出为null
),否则会返回false
。- 返回:
-
true
如果支持具有稍后定义内容的完整图像流的写入。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
IOException
- 如果在查询过程中发生I/O错误。
-
prepareWriteEmpty
public void prepareWriteEmpty(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param) throws IOException 开始写入完整图像流,包括一个具有未定义像素值和相关元数据和缩略图的单个图像到输出。像素值将由将来调用replacePixels
方法来定义。如果输出是一个ImageOutputStream
,则在当前寻址位置之前的现有内容不受影响,也不需要可读或可写。写入过程直到调用
endWriteEmpty
为止。在调用prepareWriteEmpty
和endWriteEmpty
之间可以发生对prepareReplacePixels
、replacePixels
和endReplacePixels
的调用。但是,不能嵌套调用prepareWriteEmpty
,并且prepareWriteEmpty
和prepareInsertEmpty
的调用不能交错进行。如果
canWriteEmpty
返回false
,将抛出UnsupportedOperationException
异常。可以选择提供一个
ImageWriteParam
来控制写入过程。如果param
为null
,将使用默认的写入参数。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。默认实现会抛出
IllegalStateException
(如果输出为null
),否则会抛出UnsupportedOperationException
。- 参数:
-
streamMetadata
- 表示流元数据的IIOMetadata
对象,或者null
以使用默认值。 -
imageType
- 描述图像布局的ImageTypeSpecifier
。 -
width
- 图像的宽度。 -
height
- 图像的高度。 -
imageMetadata
- 表示图像元数据的IIOMetadata
对象,或者null
。 -
thumbnails
- 用于此图像的BufferedImage
缩略图的List
,或者null
。 -
param
- 一个ImageWriteParam
,或者null
以使用默认的ImageWriteParam
。 - 抛出:
-
IllegalStateException
- 如果未设置输出。 -
UnsupportedOperationException
- 如果canWriteEmpty
返回false
。 -
IllegalStateException
- 如果之前调用了prepareWriteEmpty
而没有相应调用endWriteEmpty
。 -
IllegalStateException
- 如果之前调用了prepareInsertEmpty
而没有相应调用endInsertEmpty
。 -
IllegalArgumentException
- 如果imageType
为null
或thumbnails
包含null
引用或除BufferedImage
之外的对象。 -
IllegalArgumentException
- 如果宽度或高度小于1。 -
IOException
- 如果在写入过程中发生I/O错误。
-
endWriteEmpty
完成之前使用prepareWriteEmpty
开始的新图像的写入。如果
canWriteEmpty()
返回false
,将抛出UnsupportedOperationException
异常。默认实现会抛出
IllegalStateException
(如果输出为null
),否则会抛出UnsupportedOperationException
。- 抛出:
-
IllegalStateException
- 如果输出未设置。 -
UnsupportedOperationException
- 如果canWriteEmpty(imageIndex)
返回false
。 -
IllegalStateException
- 如果之前调用prepareWriteEmpty
而没有相应调用endWriteEmpty
。 -
IllegalStateException
- 如果之前调用prepareInsertEmpty
而没有相应调用endInsertEmpty
。 -
IllegalStateException
- 如果调用prepareReiplacePixels
而没有匹配的endReplacePixels
。 -
IOException
- 写入过程中发生I/O错误。
-
canInsertEmpty
返回true
如果写入器支持在给定索引处插入新的空图像。图像的像素值未定义,并且可以使用replacePixels
方法逐步指定。索引大于或等于插入索引的现有图像的索引将增加1。可以使用imageIndex
的值-1
表示比当前最大索引大1的索引。不支持插入空图像的写入器可能会在不对索引进行边界检查的情况下返回
false
。如果输出为
null
,默认实现会抛出IllegalStateException
,否则会返回false
而不检查imageIndex
的值。- 参数:
-
imageIndex
- 要插入图像的索引。 - 返回:
-
true
如果可以在给定索引处插入空图像。 - 抛出:
-
IllegalStateException
- 如果输出未设置。 -
IndexOutOfBoundsException
- 如果写入器通常支持插入空图像,但imageIndex
小于-1或大于最大可用索引。 -
IOException
- 查询过程中发生I/O错误。
-
prepareInsertEmpty
public void prepareInsertEmpty(int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param) throws IOException 开始将具有未定义像素值的新图像插入到现有图像流中。索引大于imageIndex
的现有图像将被保留,并且它们的索引将分别增加1。可以使用imageIndex
的值-1表示比先前最大索引大1的索引;也就是说,它将导致图像逻辑上附加到序列的末尾。如果输出是ImageOutputStream
,则整个流必须可读且可写。图像内容可以稍后使用
replacePixels
方法提供。插入操作直到调用endInsertEmpty
才算完成。在调用prepareInsertEmpty
和endInsertEmpty
之间可以调用prepareReplacePixels
、replacePixels
和endReplacePixels
。但是,不能嵌套调用prepareInsertEmpty
,并且不能在prepareWriteEmpty
和prepareInsertEmpty
之间交替调用。如果
canInsertEmpty(imageIndex)
返回false
,将抛出UnsupportedOperationException
。可以选择提供一个
ImageWriteParam
来控制写入过程。如果param
为null
,将使用默认的写入参数。如果提供的
ImageWriteParam
包含此写入器不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。如果输出为
null
,默认实现会抛出IllegalStateException
,否则会抛出UnsupportedOperationException
。- 参数:
-
imageIndex
- 要写入图像的索引。 -
imageType
-描述图像布局的ImageTypeSpecifier
。 -
width
- 图像的宽度。 -
height
- 图像的高度。 -
imageMetadata
- 表示图像元数据的IIOMetadata
对象,或null
。 -
thumbnails
- 包含此图像的BufferedImage
缩略图的List
,或null
。 -
param
- 一个ImageWriteParam
,或null
以使用默认的ImageWriteParam
。 - 抛出:
-
IllegalStateException
- 如果输出未设置。 -
UnsupportedOperationException
- 如果canInsertEmpty(imageIndex)
返回false
。 -
IndexOutOfBoundsException
- 如果imageIndex
小于-1或大于最大可用索引。 -
IllegalStateException
- 如果之前调用prepareInsertEmpty
而没有相应调用endInsertEmpty
。 -
IllegalStateException
- 如果之前调用prepareWriteEmpty
而没有相应调用endWriteEmpty
。 -
IllegalArgumentException
- 如果imageType
为null
或thumbnails
包含null
引用或不是BufferedImage
的对象。 -
IllegalArgumentException
- 如果宽度或高度小于1。 -
IOException
- 写入过程中发生I/O错误。
-
endInsertEmpty
完成先前调用prepareInsertEmpty
开始的新图像的插入。如果输出为
null
,默认实现会抛出IllegalStateException
,否则会抛出UnsupportedOperationException
。- 抛出:
-
IllegalStateException
- 如果输出未设置。 -
UnsupportedOperationException
- 如果canInsertEmpty(imageIndex)
返回false
。 -
IllegalStateException
- 如果之前调用prepareInsertEmpty
而没有相应调用endInsertEmpty
。 -
IllegalStateException
- 如果之前调用prepareWriteEmpty
而没有相应调用endWriteEmpty
。 -
IllegalStateException
- 如果调用prepareReplacePixels
而没有匹配的endReplacePixels
。 -
IOException
- 写入过程中发生I/O错误。
-
canReplacePixels
返回true
如果写入器允许使用replacePixels
方法替换给定图像的像素。不支持任何像素替换的写入器可能会在不对索引进行边界检查的情况下返回
false
。如果输出为
null
,默认实现会抛出IllegalStateException
,否则会返回false
而不检查imageIndex
的值。- 参数:
-
imageIndex
- 要替换像素的图像的索引。 - 返回:
-
true
如果可以替换给定图像的像素。 - 抛出:
-
IllegalStateException
- 如果输出未设置。 -
IndexOutOfBoundsException
- 如果写入器通常支持像素替换,但imageIndex
小于0或大于最大可用索引。 -
IOException
- 查询过程中发生I/O错误。
-
prepareReplacePixels
准备写入器处理一系列对replacePixels
方法的调用。受影响的像素区域将针对提供的进行裁剪如果
canReplacePixels
返回false
,将抛出UnsupportedOperationException
。如果输出为
null
,默认实现会抛出IllegalStateException
,否则会抛出UnsupportedOperationException
。- 参数:
-
imageIndex
- 要替换其像素的图像的索引。 -
region
- 一个将用于裁剪未来像素区域的Rectangle
。 - 抛出:
-
IllegalStateException
- 如果输出尚未设置。 -
UnsupportedOperationException
- 如果canReplacePixels(imageIndex)
返回false
。 -
IndexOutOfBoundsException
- 如果imageIndex
小于0或大于最大可用索引。 -
IllegalStateException
- 如果之前调用了prepareReplacePixels
而没有匹配的endReplacePixels
调用(即,不允许嵌套)。 -
IllegalArgumentException
- 如果region
为null
或宽度或高度小于1。 -
IOException
- 如果在准备过程中发生I/O错误。
-
replacePixels
用给定图像的一部分替换已存在于输出中的图像的一部分。图像数据必须匹配或可转换为现有图像的图像布局。目标区域在
param
参数中指定,并将被裁剪为图像边界和提供给prepareReplacePixels
的区域。源的至少一个像素不能被裁剪,否则将抛出异常。可以选择提供
ImageWriteParam
以控制写入过程。如果param
为null
,将使用默认的写入参数。如果提供的
ImageWriteParam
包含此写入程序不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。此方法只能在调用
prepareReplacePixels
之后调用,否则将抛出IllegalStateException
。默认实现会在输出为
null
时抛出IllegalStateException
,否则抛出UnsupportedOperationException
。- 参数:
-
image
- 包含源像素的RenderedImage
。 -
param
- 一个ImageWriteParam
,或null
以使用默认的ImageWriteParam
。 - 抛出:
-
IllegalStateException
- 如果输出尚未设置。 -
UnsupportedOperationException
- 如果canReplacePixels(imageIndex)
返回false
。 -
IllegalStateException
- 如果没有之前调用prepareReplacePixels
而没有匹配的endReplacePixels
调用。 -
IllegalArgumentException
- 如果以下任一情况为真:image
为null
。- 相交区域不包含至少一个像素。
image
的布局与现有图像布局不匹配,或者此写入程序无法将其转换为现有图像布局。
-
IOException
- 如果在写入过程中发生I/O错误。
-
replacePixels
用给定Raster
的一部分替换已存在于输出中的图像的一部分。图像数据必须匹配或可转换为现有图像的图像布局。可以选择提供
ImageWriteParam
以控制写入过程。如果param
为null
,将使用默认的写入参数。目标区域在
param
参数中指定,并将被裁剪为图像边界和提供给prepareReplacePixels
的区域。源的至少一个像素不能被裁剪,否则将抛出异常。如果提供的
ImageWriteParam
包含此写入程序不支持的可选设置值(例如渐进编码或任何特定于格式的设置),它们将被忽略。此方法只能在调用
prepareReplacePixels
之后调用,否则将抛出IllegalStateException
。默认实现会在输出为
null
时抛出IllegalStateException
,否则抛出UnsupportedOperationException
。- 参数:
-
raster
- 包含源像素的Raster
。 -
param
- 一个ImageWriteParam
,或null
以使用默认的ImageWriteParam
。 - 抛出:
-
IllegalStateException
- 如果输出尚未设置。 -
UnsupportedOperationException
- 如果canReplacePixels(imageIndex)
返回false
。 -
IllegalStateException
- 如果没有之前调用prepareReplacePixels
而没有匹配的endReplacePixels
调用。 -
UnsupportedOperationException
- 如果canWriteRasters
返回false
。 -
IllegalArgumentException
- 如果以下任一情况为真:raster
为null
。- 相交区域不包含至少一个像素。
raster
的布局与现有图像布局不匹配,或者此写入程序无法将其转换为现有图像布局。
-
IOException
- 如果在写入过程中发生I/O错误。
-
endReplacePixels
终止对replacePixels
的一系列调用。如果
canReplacePixels
返回false
,将抛出UnsupportedOperationException
。默认实现会在输出为
null
时抛出IllegalStateException
,否则抛出UnsupportedOperationException
。- 抛出:
-
IllegalStateException
- 如果输出尚未设置。 -
UnsupportedOperationException
- 如果canReplacePixels(imageIndex)
返回false
。 -
IllegalStateException
- 如果没有之前调用prepareReplacePixels
而没有匹配的endReplacePixels
调用。 -
IOException
- 如果在写入过程中发生I/O错误。
-
abort
public void abort()请求中止任何当前写入操作。中止后的输出内容将是未定义的。写入程序应在每次写入操作开始时调用
clearAbortRequest
,并在写入过程中定期轮询abortRequested
的值。 -
abortRequested
protected boolean abortRequested()如果自写入程序实例化以来或调用clearAbortRequest
以来已发出中止当前写入操作的请求,则返回true
。- 返回:
-
如果应中止当前写入操作,则返回
true
。 - 参见:
-
clearAbortRequest
protected void clearAbortRequest()清除任何先前的中止请求。调用此方法后,abortRequested
将返回false
。- 参见:
-
addIIOWriteWarningListener
将一个IIOWriteWarningListener
添加到已注册的警告侦听器列表中。如果listener
为null
,则不会抛出异常,也不会执行任何操作。发送到给定侦听器的消息将在可能的情况下本地化,以匹配当前的Locale
。如果未设置Locale
,则警告消息可能会根据写入程序的看法进行本地化。- 参数:
-
listener
- 要注册的IIOWriteWarningListener
。 - 参见:
-
removeIIOWriteWarningListener
从已注册的警告侦听器列表中删除一个IIOWriteWarningListener
。如果侦听器先前未注册,或者listener
为null
,则不会抛出异常,也不会执行任何操作。- 参数:
-
listener
- 要注销的IIOWriteWarningListener
。 - 参见:
-
removeAllIIOWriteWarningListeners
public void removeAllIIOWriteWarningListeners()删除当前所有已注册的IIOWriteWarningListener
对象。默认实现将
warningListeners
和warningLocales
实例变量设置为null
。 -
addIIOWriteProgressListener
将一个IIOWriteProgressListener
添加到已注册的进度监听器列表中。如果listener
为null
,则不会抛出异常,也不会执行任何操作。- 参数:
-
listener
- 要注册的IIOWriteProgressListener
。 - 参见:
-
removeIIOWriteProgressListener
从已注册的进度监听器列表中移除一个IIOWriteProgressListener
。如果监听器之前未注册,或者listener
为null
,则不会抛出异常,也不会执行任何操作。- 参数:
-
listener
- 要注销的IIOWriteProgressListener
。 - 参见:
-
removeAllIIOWriteProgressListeners
public void removeAllIIOWriteProgressListeners()移除当前所有已注册的IIOWriteProgressListener
对象。默认实现将
progressListeners
实例变量设置为null
。 -
processImageStarted
protected void processImageStarted(int imageIndex) 通过调用它们的imageStarted
方法,向所有已注册的IIOWriteProgressListener
广播图像写入的开始。子类可以使用此方法作为一种便利。- 参数:
-
imageIndex
- 即将被写入的图像的索引。
-
processImageProgress
protected void processImageProgress(float percentageDone) 通过调用它们的imageProgress
方法,向所有已注册的IIOWriteProgressListener
广播图像完成的当前百分比。子类可以使用此方法作为一种便利。- 参数:
-
percentageDone
- 当前完成百分比,作为float
。
-
processImageComplete
protected void processImageComplete()通过调用它们的imageComplete
方法,向所有已注册的IIOWriteProgressListener
广播图像写入的完成。子类可以使用此方法作为一种便利。 -
processThumbnailStarted
protected void processThumbnailStarted(int imageIndex, int thumbnailIndex) 通过调用它们的thumbnailStarted
方法,向所有已注册的IIOWriteProgressListener
广播缩略图写入的开始。子类可以使用此方法作为一种便利。- 参数:
-
imageIndex
- 与缩略图关联的图像的索引。 -
thumbnailIndex
- 缩略图的索引。
-
processThumbnailProgress
protected void processThumbnailProgress(float percentageDone) 通过调用它们的thumbnailProgress
方法,向所有已注册的IIOWriteProgressListener
广播缩略图完成的当前百分比。子类可以使用此方法作为一种便利。- 参数:
-
percentageDone
- 当前完成百分比,作为float
。
-
processThumbnailComplete
protected void processThumbnailComplete()通过调用它们的thumbnailComplete
方法,向所有已注册的IIOWriteProgressListener
广播缩略图写入的完成。子类可以使用此方法作为一种便利。 -
processWriteAborted
protected void processWriteAborted()通过调用它们的writeAborted
方法,向所有已注册的IIOWriteProgressListener
广播写入操作已中止。子类可以使用此方法作为一种便利。 -
processWarningOccurred
通过调用它们的warningOccurred
方法,向所有已注册的IIOWriteWarningListener
广播警告消息。子类可以使用此方法作为一种便利。- 参数:
-
imageIndex
- 发生警告的图像的索引。 -
warning
- 警告消息。 - 抛出:
-
IllegalArgumentException
- 如果warning
为null
。
-
processWarningOccurred
通过从ResourceBundle
中获取的字符串调用它们的warningOccurred
方法,向所有已注册的IIOWriteWarningListener
广播本地化的警告消息。子类可以使用此方法作为一种便利。- 参数:
-
imageIndex
- 发生警告的图像的索引。 -
baseName
- 包含本地化警告消息的一组ResourceBundle
的基本名称。 -
keyword
- 在ResourceBundle
集合中用于索引警告消息的关键字。 - 抛出:
-
IllegalArgumentException
- 如果baseName
为null
。 -
IllegalArgumentException
- 如果keyword
为null
。 -
IllegalArgumentException
- 如果无法找到适当的ResourceBundle
。 -
IllegalArgumentException
- 如果在定位的ResourceBundle
中找不到命名资源。 -
IllegalArgumentException
- 如果从ResourceBundle
中检索的对象不是String
。
-
reset
public void reset()将ImageWriter
恢复到初始状态。默认实现调用
setOutput(null)
、setLocale(null)
、removeAllIIOWriteWarningListeners()
、removeAllIIOWriteProgressListeners()
和clearAbortRequest
。 -
dispose
public void dispose()允许释放此对象持有的任何资源。在调用此方法后继续调用任何其他方法(除了finalize
)的结果是未定义的。当应用程序知道不再需要使用此
ImageWriter
时,调用此方法非常重要。否则,写入器可能会无限期地保留资源。在超类中此方法的默认实现不执行任何操作。子类实现应确保释放所有资源,特别是本机资源。
-