- 所有已实现的接口:
ImageTranscoder
ImageWriter 对象通常由特定格式的服务提供者类实例化。服务提供者类在 IIORegistry 中注册,它使用它们进行格式识别和可用格式读取器和写入器的呈现。
- 参见:
-
字段摘要
字段修饰符和类型Field描述protected Locale[]可用于本地化警告消息和压缩设置值的Locale数组,如果不支持本地化,则为null数组。protected Locale当前用于本地化的Locale,如果未设置则为null。protected ImageWriterSpi实例化此对象的ImageWriterSpi,如果其身份未知或不存在,则为null。protected ObjectImageOutputStream或其他Object由setOutput设置并由getOutput检索。protected List<IIOWriteProgressListener>当前注册的IIOWriteProgressListener的List,默认初始化为null,与空的List同义。protected List<IIOWriteWarningListener>当前注册的IIOWriteWarningListener的List,默认初始化为null,与空的List同义。Locale的List,一个对应warningListeners的每个元素,默认初始化为null,与空的List同义。 -
构造方法总结
构造方法修饰符构造方法描述protectedImageWriter(ImageWriterSpi originatingProvider) 构造一个ImageWriter并将其originatingProvider实例变量设置为提供的值。 -
方法总结
修饰符和类型方法描述voidabort()请求中止任何当前的写操作。protected boolean如果自编写器实例化或调用clearAbortRequest以来已发出中止当前写入操作的请求,则返回true。void将IIOWriteProgressListener添加到已注册进度监听器列表中。void将IIOWriteWarningListener添加到已注册的警告监听器列表中。booleancanInsertEmpty(int imageIndex) 如果编写器支持在给定索引处插入新的空图像,则返回true。booleancanInsertImage(int imageIndex) 如果编写器支持在给定索引处插入新图像,则返回true。booleancanRemoveImage(int imageIndex) 如果编写器支持删除给定索引处的现有图像,则返回true。booleancanReplaceImageMetadata(int imageIndex) 如果可以用索引imageIndex替换与现有图像关联的图像元数据,则返回true。booleancanReplacePixels(int imageIndex) 如果作者允许使用replacePixels方法替换给定图像的像素,则返回true。boolean如果可以替换输出中已存在的流元数据,则返回true。boolean如果编写器支持将包含具有未定义像素值的单个图像以及关联的元数据和缩略图的完整图像流写入到输出,则返回true。boolean如果采用IIOImage参数的方法能够处理Raster(与RenderedImage相对)源图像,则返回true。boolean如果编写器能够将图像附加到已经包含标头信息和可能的先前图像的图像流,则返回true。protected void清除任何先前的中止请求。voiddispose()允许释放此对象持有的任何资源。void完成插入之前调用prepareInsertEmpty开始的新图像。void终止对replacePixels的一系列调用。void完成之前调用prepareWriteEmpty开始的新图像的写入。void完成以prepareWriteSequence开头的图像序列的写入。Locale[]返回可用于本地化警告监听器和压缩设置的Locale数组。abstract IIOMetadatagetDefaultImageMetadata(ImageTypeSpecifier imageType, ImageWriteParam param) 返回一个IIOMetadata对象,其中包含用于对给定类型的图像进行编码的默认值。abstract IIOMetadata返回一个IIOMetadata对象,其中包含用于编码图像流的默认值。返回包含默认值的此文件格式的适当类型的新ImageWriteParam对象,即如果未指定ImageWriteParam对象将使用的那些值。返回当前设置的Locale,如果没有设置则返回null。intgetNumThumbnailsSupported(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数组,指示缩略图的合法大小范围,因为它们将在输出文件或流中进行编码。voidprepareInsertEmpty(int imageIndex, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param) 开始将具有未定义像素值的新图像插入到现有图像流中。voidprepareReplacePixels(int imageIndex, Rectangle region) 准备编写器以处理对replacePixels方法的一系列调用。voidprepareWriteEmpty(IIOMetadata streamMetadata, ImageTypeSpecifier imageType, int width, int height, IIOMetadata imageMetadata, List<? extends BufferedImage> thumbnails, ImageWriteParam param) 开始将完整的图像流写入输出,该图像流由具有未定义像素值和关联元数据和缩略图的单个图像组成。voidprepareWriteSequence(IIOMetadata streamMetadata) 使用提供的流元数据对象准备流以接受一系列后续writeToSequence调用。protected void通过调用它们的imageComplete方法向所有已注册的IIOWriteProgressListener广播图像写入的完成。protected voidprocessImageProgress(float percentageDone) 通过调用它们的imageProgress方法向所有已注册的IIOWriteProgressListener广播当前图像完成百分比。protected voidprocessImageStarted(int imageIndex) 通过调用它们的imageStarted方法向所有已注册的IIOWriteProgressListener广播图像写入的开始。protected void通过调用它们的thumbnailComplete方法向所有已注册的IIOWriteProgressListener广播缩略图写入的完成。protected voidprocessThumbnailProgress(float percentageDone) 通过调用它们的thumbnailProgress方法向所有已注册的IIOWriteProgressListener广播当前缩略图完成百分比。protected voidprocessThumbnailStarted(int imageIndex, int thumbnailIndex) 通过调用它们的thumbnailStarted方法向所有已注册的IIOWriteProgressListener广播缩略图写入的开始。protected voidprocessWarningOccurred(int imageIndex, String warning) 通过调用它们的warningOccurred方法向所有已注册的IIOWriteWarningListener广播一条警告消息。protected voidprocessWarningOccurred(int imageIndex, String baseName, String keyword) 通过使用从ResourceBundle获取的字符串调用它们的warningOccurred方法,向所有已注册的IIOWriteWarningListener广播本地化警告消息。protected void通过调用它们的writeAborted方法向所有已注册的IIOWriteProgressListener广播写入已中止的消息。void删除所有当前注册的IIOWriteProgressListener对象。void删除所有当前注册的IIOWriteWarningListener对象。void从已注册进度监听器列表中删除IIOWriteProgressListener。void从已注册的警告监听器列表中删除IIOWriteWarningListener。voidremoveImage(int imageIndex) 从流中删除图像。voidreplaceImageMetadata(int imageIndex, IIOMetadata imageMetadata) 替换与现有图像关联的图像元数据。voidreplacePixels(Raster raster, ImageWriteParam param) 用给定的Raster的一部分替换输出中已经存在的图像的一部分。voidreplacePixels(RenderedImage image, ImageWriteParam param) 用给定图像的一部分替换输出中已经存在的图像的一部分。voidreplaceStreamMetadata(IIOMetadata streamMetadata) 用新信息替换输出中的流元数据。voidreset()将ImageWriter恢复到其初始状态。void将此ImageWriter的当前Locale设置为给定值。void将目的地设置为给定的ImageOutputStream或其他Object。voidwrite(RenderedImage image) 将由具有默认元数据和缩略图的单个图像组成的完整图像流附加到输出。void将包含具有默认元数据和缩略图的单个图像的完整图像流附加到输出。abstract voidwrite(IIOMetadata streamMetadata, IIOImage image, ImageWriteParam param) 将包含单个图像和关联流以及图像元数据和缩略图的完整图像流附加到输出。voidwriteInsert(int imageIndex, IIOImage image, ImageWriteParam param) 将新图像插入现有图像流。voidwriteToSequence(IIOImage image, ImageWriteParam param) 将单个图像和可能关联的元数据和缩略图附加到输出。在类 java.lang.Object 中声明的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait在接口 javax.imageio.ImageTranscoder 中声明的方法
convertImageMetadata, convertStreamMetadata
-
字段详细信息
-
originatingProvider
实例化此对象的ImageWriterSpi,如果其身份未知或不存在,则为null。默认情况下,它被初始化为null。 -
output
ImageOutputStream或其他Object由setOutput设置并由getOutput检索。默认情况下,它被初始化为null。 -
availableLocales
可用于本地化警告消息和压缩设置值的Locale数组,如果不支持本地化,则为null数组。默认情况下,它被初始化为null。 -
locale
当前用于本地化的Locale,如果未设置则为null。默认情况下,它被初始化为null。 -
warningListeners
当前注册的IIOWriteWarningListener的List,默认初始化为null,与空的List同义。 -
warningLocales
Locale的List,一个对应warningListeners的每个元素,默认初始化为null,与空的List同义。 -
progressListeners
当前注册的IIOWriteProgressListener的List,默认初始化为null,与空的List同义。
-
-
构造方法详细信息
-
ImageWriter
构造一个ImageWriter并将其originatingProvider实例变量设置为提供的值。使用扩展的子类应该提供一个带有签名
(ImageWriterSpi, Object)的构造函数,以便检索扩展对象。如果扩展对象不合适,则应抛出IllegalArgumentException。- 参数:
originatingProvider- 正在构造此对象的ImageWriterSpi或null。
-
-
方法详情
-
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,要求流的全部内容是可读和可写的,并且可能改变流的任何部分。使用
Object而不是ImageOutputStream是为了直接与输出设备或成像协议交互的编写器。合法类集由作者的服务提供商的getOutputTypes方法公布;大多数作者将返回一个仅包含ImageOutputStream.class的单元素数组,以表明他们只接受一个ImageOutputStream。默认实现将
output实例变量设置为output的值,在检查output与原始提供者通告的类集(如果有的话)之后。- 参数:
output-ImageOutputStream或其他Object用于未来的写作。- 抛出:
IllegalArgumentException- 如果output不是原始服务提供商的getOutputTypes方法返回的类之一的实例。- 参见:
-
getOutput
返回由最近调用setOutput方法设置的ImageOutputStream或其他Object。如果未设置目的地,则返回null。默认实现返回
output实例变量的值。- 返回:
-
使用
setOutput或null指定的Object。 - 参见:
-
getAvailableLocales
返回可用于本地化警告监听器和压缩设置的Locale数组。null的返回值表示不支持本地化。默认实现返回
availableLocales实例变量的克隆,如果它是非null,否则返回null。- 返回:
-
可以用作
setLocale或null的参数的Locale数组。
-
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(IE,您将通过调用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()如果采用IIOImage参数的方法能够处理Raster(与RenderedImage相对)源图像,则返回true。如果此方法返回false,那么如果提供了包含Raster的IIOImage,则这些方法将抛出UnsupportedOperationException。默认实现返回
false。- 返回:
true如果支持Raster来源。
-
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,否则返回false,而不检查imageIndex的值。- 参数:
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。imageIndex或-1的值可用于表示比当前最大索引大 1 的索引。不支持任何图像插入的编写器可能会在不对索引执行边界检查的情况下返回
false。如果输出为
null,则默认实现抛出IllegalStateException,否则返回false,而不检查imageIndex的值。- 参数:
imageIndex- 要插入图像的索引。- 返回:
true是否可以在给定索引处插入图像。- 抛出:
IllegalStateException- 如果尚未设置输出。IndexOutOfBoundsException- 如果 writer 通常支持图像插入,但imageIndex小于 -1 或大于最大可用索引。IOException- 如果在查询期间发生 I/O 错误。
-
writeInsert
将新图像插入现有图像流。保留索引大于imageIndex的现有图像,并将它们的索引每个增加 1。imageIndex的值 -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。如果输出为
null,则默认实现抛出IllegalStateException,否则返回false,而不检查imageIndex的值。- 参数:
imageIndex- 要删除的图像的索引。- 返回:
true是否可以删除给定的图像。- 抛出:
IllegalStateException- 如果尚未设置输出。IndexOutOfBoundsException- 如果 writer 通常支持图像删除,但imageIndex小于 0 或大于最大可用索引。IOException- 如果在查询期间发生 I/O 错误。
-
removeImage
从流中删除图像。如果
canRemoveImage(imageIndex)返回 false,将抛出UnsupportedOperationException。删除可能会也可能不会导致实际文件大小的减少。
如果输出为
null,则默认实现抛出IllegalStateException,否则抛出UnsupportedOperationException。- 参数:
imageIndex- 要删除的图像的索引。- 抛出:
IllegalStateException- 如果尚未设置输出。UnsupportedOperationException- 如果canRemoveImage(imageIndex)返回false。IndexOutOfBoundsException- 如果imageIndex小于 0 或大于最大可用索引。IOException- 如果在移除过程中发生 I/O 错误。
-
canWriteEmpty
如果编写器支持将包含具有未定义像素值的单个图像以及关联的元数据和缩略图的完整图像流写入到输出,则返回true。像素值可以通过未来调用replacePixels方法来定义。如果输出是ImageOutputStream,则其在当前搜索位置之前的现有内容不受影响,并且不需要可读或可写。如果输出为
null,则默认实现抛出IllegalStateException,否则返回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之前写入未完成。对prepareReplacePixels、replacePixels和endReplacePixels的调用可能发生在对prepareWriteEmpty和endWriteEmpty的调用之间。但是prepareWriteEmpty的调用不能嵌套,prepareWriteEmpty和prepareInsertEmpty的调用不能穿插。如果
canWriteEmpty返回false,将抛出一个UnsupportedOperationException。可以选择提供
ImageWriteParam来控制写入过程。如果param是null,将使用默认的写入参数。如果提供的
ImageWriteParam包含本作者不支持的可选设置值(例如渐进式编码或任何特定于格式的设置),它们将被忽略。如果输出为
null,则默认实现抛出IllegalStateException,否则抛出UnsupportedOperationException。- 参数:
streamMetadata- 表示流元数据的IIOMetadata对象,或null使用默认值。imageType- 一个ImageTypeSpecifier描述图像的布局。width- 图像的宽度。height- 图像的高度。imageMetadata- 代表图像元数据的IIOMetadata对象,或null。thumbnails- 此图像的List个BufferedImage个缩略图,或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。如果输出为
null,则默认实现抛出IllegalStateException,否则抛出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- 如果 writer 通常支持空图像插入,但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 可用于表示索引比前一个最大索引大一个;也就是说,它将导致图像在逻辑上附加到序列的末尾。如果输出是ImageOutputStream,则整个流必须是可读可写的。稍后可以使用
replacePixels方法提供图像内容。直到调用endInsertEmpty时插入才完成。对prepareReplacePixels、replacePixels和endReplacePixels的调用可能发生在对prepareInsertEmpty和endInsertEmpty的调用之间。但是prepareInsertEmpty的调用不能嵌套,prepareWriteEmpty和prepareInsertEmpty的调用不能穿插。如果
canInsertEmpty(imageIndex)返回false,将抛出一个UnsupportedOperationException。可以选择提供
ImageWriteParam来控制写入过程。如果param是null,将使用默认的写入参数。如果提供的
ImageWriteParam包含本作者不支持的可选设置值(例如渐进式编码或任何特定于格式的设置),它们将被忽略。如果输出为
null,则默认实现抛出IllegalStateException,否则抛出UnsupportedOperationException。- 参数:
imageIndex- 写入图像的索引。imageType- 一个ImageTypeSpecifier描述图像的布局。width- 图像的宽度。height- 图像的高度。imageMetadata- 代表图像元数据的IIOMetadata对象,或null。thumbnails- 此图像的List个BufferedImage个缩略图,或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
如果作者允许使用replacePixels方法替换给定图像的像素,则返回true。不支持任何像素替换的编写器可能会在不对索引执行边界检查的情况下返回
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(IE, 不允许嵌套)。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时,调用此方法很重要。否则,作者可能会无限期地继续持有资源。超类中此方法的默认实现不执行任何操作。子类实现应确保释放所有资源,尤其是本机资源。
-