public abstract class ImageWriterSpi extends ImageReaderWriterSpi
ImageWriter秒。 
       有关服务提供程序类的更多信息,请参阅IIORegistry类的类注释。 
        每个ImageWriterSpi提供了与它相关联的ImageWriter类的几种类型的信息。 
 谁定义的SPI类和类的简要说明供应商的名称通过可getVendorName , getDescription和getVersion方法。 这些方法可以被国际化以提供特定于区域的输出。 这些方法主要用于提供可用于组织弹出菜单或其他列表的简短的人类可写信息。 
 格式名称,文件后缀,以及与该服务相关联MIME类型的列表可通过的方式获得getFormatNames , getFileSuffixes和getMIMEType方法。 这些方法可以被用于识别候选ImageWriter S表示写入一个特定的文件或流基于手动格式选择,文件命名,或MIME关联。 
 通过canEncodeImage方法提供了一种更可靠的方法来确定哪些ImageWriter可能能够解析特定的数据流。 此方法允许服务提供商检查实际的图像内容。 
 最后,可以通过调用createWriterInstance方法获得与该服务提供商相关ImageWriter类的实例。 任何重量级的初始化(如加载本机库或创建大型表)至少应该延迟至首次调用此方法为止。 
IIORegistry , ImageTypeSpecifier , ImageWriter 
       | Modifier and Type | Field and Description | 
|---|---|
| protected 类[] | outputTypes
              从 
              getOutputTypes返回的类对象的数组,类为null。 | 
| protected String[] | readerSpiNames
              要从 
              getImageReaderSpiNames返回的字符串数组,最初为null。 | 
| static 类[] | STANDARD_OUTPUT_TYPE 
             已弃用 
               
              而不是使用此字段,直接创建等效数组 { ImageOutputStream.class }。 | 
extraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormatvendorName, version| Modifier | Constructor and Description | 
|---|---|
| protected  | ImageWriterSpi()
              构造一个空白 
              ImageWriterSpi。 | 
|   | ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, 类[] outputTypes, String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
              构造具有给定值的 
              ImageWriterSpi。 | 
| Modifier and Type | Method and Description | 
|---|---|
| abstract boolean | canEncodeImage(ImageTypeSpecifier type)
              如果与此服务提供商 
              ImageWriter联的ImageWriter实现能够使用给定的布局对图像进行编码,则返回true。 | 
| boolean | canEncodeImage(RenderedImage im)
              如果与此服务提供商 
              ImageWriter联的ImageWriter实现能够对给定的RenderedImage实例进行编码,则返回true。 | 
| ImageWriter | createWriterInstance()
              返回与此服务提供程序相关 
              ImageWriterImageWriter实现的实例。 | 
| abstract ImageWriter | createWriterInstance(Object extension)
              返回与此服务提供程序相关 
              ImageWriterImageWriter实现的实例。 | 
| String[] | getImageReaderSpiNames()
              返回的数组 
              String包含所有的所有的完全合格的名称小号ImageReaderSpi类,可以理解由所使用的内部元数据表示ImageWriter与此服务提供商相关联,或null如果没有这样ImageReaders指定。 | 
| 类[] | getOutputTypes()
              返回一个 
              类对象的数组,类可以使用什么类型的对象作为撰写者的setOutput方法的参数。 | 
| boolean | isFormatLossless()
              返回 
              true如果该写入器输出的格式可以精确保留像素数据。 | 
| boolean | isOwnWriter(ImageWriter writer)
              返回 
              true如果ImageWriter在传递的对象是的实例ImageWriter与此服务提供者关联。 | 
getExtraImageMetadataFormatNames, getExtraStreamMetadataFormatNames, getFileSuffixes, getFormatNames, getImageMetadataFormat, getMIMETypes, getNativeImageMetadataFormatName, getNativeStreamMetadataFormatName, getPluginClassName, getStreamMetadataFormat, isStandardImageMetadataFormatSupported, isStandardStreamMetadataFormatSupportedgetDescription, getVendorName, getVersion, onDeregistration, onRegistration@Deprecated public static final 类[] STANDARD_OUTPUT_TYPE
{ ImageOutputStream.class } 。 
          ImageOutputStream.class ,从 
           getOutputTypes返回。 
          protected 类[] outputTypes
getOutputTypes返回的 
           类对象的数组, 
           类为 
           null 。 
          protected String[] readerSpiNames
getImageReaderSpiNames返回的字符串数组,最初为 
           null 。 
          protected ImageWriterSpi()
ImageWriterSpi 。 
           初始化实例变量和/或覆盖方法实现的子类是为了提供所有方法的工作版本。 
          public ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, 类[] outputTypes, String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
ImageWriterSpi 。 
          vendorName - 供应商名称,非 
            null 
            String 。 
           version - 版本标识符,非 
            null 
            String 。 
           names -非null阵列的String指示格式名称。 
            必须至少有一个条目。 
           suffixes -的阵列String指示常用文件后缀。 
            如果没有定义后缀,则应提供null 。 
            长度为0的数组将被归一null 。 
           MIMETypes -的阵列String指示格式的MIME类型。 
            如果未定义任何后缀,则应提供null 。 
            长度为0的数组将被归一null 。 
           writerClassName - 相关联的 
            ImageWriterSpi类的完全限定名称,作为非 
            null 
            String 。 
           outputTypes - 长度至少为1的 
            类对象的数组, 
            类合法的输出类型。 
           readerSpiNames - 数组String的长度至少为1,命名所有关联的ImageReader s或null 。 
            长度为0的数组被归一null 。 
           supportsStandardStreamMetadataFormat -一个 
            boolean ,指示流元数据对象是否可使用由标准元数据格式描述的树。 
           nativeStreamMetadataFormatName - a 
            String或 
            null ,将从 
            getNativeStreamMetadataFormatName返回。 
           nativeStreamMetadataFormatClassName - a 
            String或 
            null ,用于实例化要从 
            getNativeStreamMetadataFormat返回的元数据格式对象。 
           extraStreamMetadataFormatNames - 要从getExtraStreamMetadataFormatNames返回的String s或null的数组。 
            长度为0的数组被归一null 。 
           extraStreamMetadataFormatClassNames - 用于实例化要从getStreamMetadataFormat返回的元数据格式对象的String s或null的数组。 
            长度为0的数组被归一null 。 
           supportsStandardImageMetadataFormat - 
            boolean图像元数据对象是否可以使用标准元数据格式描述的树的boolean。 
           nativeImageMetadataFormatName - a 
            String或 
            null ,将从 
            getNativeImageMetadataFormatName返回。 
           nativeImageMetadataFormatClassName - a 
            String或 
            null ,用于实例化要从 
            getNativeImageMetadataFormat返回的元数据格式对象。 
           extraImageMetadataFormatNames -的阵列String从返回小号getExtraImageMetadataFormatNames 。 
            长度为0的数组被归一null 。 
           extraImageMetadataFormatClassNames - 用于实例化要从getImageMetadataFormat返回的元数据格式对象的String s或null的数组。 
            长度为0的数组被归一null 。 
           IllegalArgumentException - 如果 
            vendorName是 
            null 。 
           IllegalArgumentException - 如果 
            version是 
            null 。 
           IllegalArgumentException - 如果 
            names是 
            null或长度为0。 
           IllegalArgumentException - 如果 
            writerClassName是 
            null 。 
           IllegalArgumentException - 如果 
            outputTypes是 
            null或长度为0。 
           public boolean isFormatLossless()
true如果此写入器输出的格式可精确保留像素数据。 
           默认实现返回true 。 
          true如果格式保持了完整的像素精度。 
           public 类[] getOutputTypes()
类对象的数组, 类可以将什么类型的对象用作作者的setOutput方法的参数。 
            对于大多数作家,其中仅输出到ImageOutputStream ,含有单元素数组ImageOutputStream.class应返回。 
类个长度至少为1的 
            类对象的非 
            null数组。 
           public abstract boolean canEncodeImage(ImageTypeSpecifier type)
ImageWriter联的ImageWriter实现能够对具有给定布局的图像进行编码,则返回true 。 
           布局( 即 ,图像的SampleModel和ColorModel )由ImageTypeSpecifier对象描述。 
            返回值为true不是成功编码的绝对保证; 编码过程可能由于诸如I / O错误,不一致或畸形数据结构等因素而产生错误。意图是对图像的基本结构进行合理检查,以便确定其是否在范围的编码格式。 例如,只能编码灰度的格式的服务提供商将返回false如果交给RGB BufferedImage 。 类似地,可以编码8位RGB图像的格式的服务提供商可能拒绝对具有相关联的Alpha通道的图像进行编码。 
 不同的ImageWriter s,因此服务提供商,可能会选择或多或少严格。 例如,他们可能接受具有预乘法α的图像,即使它们必须被分割出每个像素,以某种精度损失,以便被存储。 
type - 一个 
            ImageTypeSpecifier要写入的图像的布局的ImageTypeSpecifier。 
           true如果这个作者可能能够用给定的布局对图像进行编码。 
           IllegalArgumentException - 如果 
            type是 
            null 。 
           public boolean canEncodeImage(RenderedImage im)
ImageWriter联的ImageWriter实现能够对给定的RenderedImage实例进行编码,则返回true 。 
           请注意,这包括java.awt.image.BufferedImage的java.awt.image.BufferedImage 。 
            有关此方法的语义的canEncodeImage(ImageTypeSpecifier) ,请参阅canEncodeImage(ImageTypeSpecifier)的canEncodeImage(ImageTypeSpecifier) 。 
im - 要编码的 
            RenderedImage的实例。 
           true如果这个作者有可能对这个图像进行编码。 
           IllegalArgumentException - 如果 
            im是 
            null 。 
           public ImageWriter createWriterInstance() throws IOException
ImageWriter ImageWriter实现的实例。 
           返回的对象最初将处于初始状态,就像其reset方法已被调用一样。 
            默认实现只是返回createWriterInstance(null) 。 
ImageWriter例子。 
           IOException - 如果在加载期间发生错误,或者写入器类的初始化,或者在写入器对象的实例化或初始化期间发生错误。 
           public abstract ImageWriter createWriterInstance(Object extension) throws IOException
ImageWriter ImageWriter实现的实例。 
           返回的对象最初将处于初始状态,就好像其reset方法已被调用一样。 
            一个Object可以被提供给该插件在施工时间。 对象的性质是完全插件具体的。 
 通常,插件将使用诸如return new MyImageWriter(this)之类的代码实现此方法。 
extension - 插件特定的扩展对象,可以是 
            null 。 
           ImageWriter实例。 
           IOException - 如果尝试实例化写入程序失败。 
           IllegalArgumentException - 如果 
            ImageWriter的构造函数抛出一个 
            IllegalArgumentException来表示扩展对象不合适。 
           public boolean isOwnWriter(ImageWriter writer)
true的 
           ImageWriter对象是与此服务提供商 
           ImageWriter ImageWriter的实例,则 
           ImageWriter true。 
          writer - 一个 
            ImageWriter实例。 
           true如果 
            writer被识别 
           IllegalArgumentException - 如果 
            writer是 
            null 。 
           public String[] getImageReaderSpiNames()
String包含所有的所有的完全合格的名称小号ImageReaderSpi类,可以理解由所使用的内部元数据表示ImageWriter与此服务提供商相关联,或null如果没有这样ImageReaders指定。 
           如果返回非null值,它必须具有非零长度。 
            阵列中的第一个项目必须是“首选”阅读器的服务提供商的名称,因为它将用于实例化由ImageReader返回的ImageIO.getImageReader(ImageWriter) 。 
 该机制可用于获得在ImageReaders理解的结构中将产生非像素元数据(见IIOExtraDataInfo )的ImageWriter 。 通过读取图像并从使用此方法获得的ImageReaders获取此数据,并将其传递给ImageWriter ,客户端程序可以读取图像,以某种方式进行修改,并将其写回保留所有元数据,而不需要了解元数据的内部结构,甚至了解图像格式。 
String s的数组至少包含1个 
            ImageReaderSpi s或 
            null 。 
           ImageIO.getImageReader(ImageWriter), 
            ImageReaderSpi.getImageWriterSpiNames() 
            Submit a bug or feature 
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
 Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.