Module  java.desktop
软件包  javax.imageio.spi

Class ImageOutputStreamSpi

  • All Implemented Interfaces:
    RegisterableService


    public abstract class ImageOutputStreamSpi
    extends IIOServiceProvider
    服务提供商接口(SPI),用于ImageOutputStream s。 有关服务提供商接口的更多信息,请参阅IIORegistry类的类注释。

    该接口允许任意对象由ImageOutputStream的实例“包裹”。 例如,特定的ImageOutputStreamSpi可能允许使用通用的OutputStream作为目的地; 另一个可能输出到一个File或一个设备,如串行端口。

    通过将ImageOutputStream s的创建视为可插拔服务,可以在不更改API的情况下处理未来的输出目的地。 此外, ImageOutputStream的高性能实现(例如,特定平台的本机实现)可以由应用程序透明地安装和使用。

    另请参见:
    IIORegistryImageOutputStream
    • 字段详细信息

      • outputClass

        protected Class<?> outputClass
        一个 Class对象,指示 createInputStreamInstance方法使用的合法对象类型。
    • 构造方法详细信息

      • ImageOutputStreamSpi

        protected ImageOutputStreamSpi​()
        构造一个空白ImageOutputStreamSpi 初始化实例变量和/或覆盖方法实现的子类是为了提供所有方法的工作版本。
      • ImageOutputStreamSpi

        public ImageOutputStreamSpi​(String vendorName,
                                    String version,
                                    Class<?> outputClass)
        构造一个给定值的一个 ImageOutputStreamSpi
        参数
        vendorName - 供应商名称。
        version - 版本标识符。
        outputClass - 一个 Class对象,指示 createOutputStreamInstance方法使用的合法对象类型。
        异常
        IllegalArgumentException - 如果 vendorNamenull
        IllegalArgumentException - 如果 versionnull
    • 方法详细信息

      • getOutputClass

        public Class<?> getOutputClass​()
        返回一个Class表示必须由输出目的地,以便被实现为“包装”在的类或接口类型的对象ImageOutputStream经由createOutputStreamInstance方法。

        典型的返回值可能包括OutputStream.classFile.class ,但可以使用任何类。

        结果
        一个 Class变量。
        另请参见:
        createOutputStreamInstance(Object, boolean, File)
      • canUseCacheFile

        public boolean canUseCacheFile​()
        返回true如果ImageOutputStream与此服务提供者关联实现可选择使用缓存File ,以提高性能和/或内存占用。 如果false ,该值cacheFile参数createOutputStreamInstance将被忽略。

        默认实现返回false

        结果
        true如果缓存文件可以由此服务提供商创建的输出流使用。
      • needsCacheFile

        public boolean needsCacheFile​()
        返回true如果ImageOutputStream与此服务提供相关的实施需要使用一个缓存File

        默认实现返回false

        结果
        true如果此服务提供商创建的输出流需要缓存文件。
      • createOutputStreamInstance

        public abstract ImageOutputStream createOutputStreamInstance​(Object output,
                                                                     boolean useCache,
                                                                     File cacheDir)
                                                              throws IOException
        返回与此服务提供商关联的ImageOutputStream实现的实例。 如果使用缓存文件是可选的,则将参考useCache参数。 在需要缓存或不适用的情况下, useCache的值将被忽略。
        参数
        output - 由类别返回的对象类型 getOutputClass
        useCache - a boolean表示是否应使用缓存文件,如果是可选的。
        cacheDir - 一个 File指示应该创建高速缓存文件的位置,或 null使用系统目录。
        结果
        一个 ImageOutputStream例子。
        异常
        IllegalArgumentException - 如果 output不是正确类的实例,或者是 null
        IllegalArgumentException - 如果需要缓存文件,但 cacheDir不是 null并且不是目录。
        IOException - 如果需要缓存文件但无法创建。
        另请参见:
        getOutputClass()
      • createOutputStreamInstance

        public ImageOutputStream createOutputStreamInstance​(Object output)
                                                     throws IOException
        返回与此服务提供商相关联的ImageOutputStream实现的实例。 如果需要,系统相关的默认临时文件目录中将创建缓存文件。
        参数
        output - getOutputClass返回的类类的对象。
        结果
        一个 ImageOutputStream实例。
        异常
        IllegalArgumentException - 如果 output不是正确类的实例,或者是 null
        IOException - 如果需要缓存文件但无法创建。
        另请参见:
        getOutputClass()