模块  java.desktop
软件包  javax.imageio.spi

Class ImageInputStreamSpi

  • 实现的所有接口
    RegisterableService

    public abstract class ImageInputStreamSpi
    extends IIOServiceProvider
    ImageInputStream的服务提供者接口(SPI)。 有关服务提供者接口的更多信息,请参阅IIORegistry类的类注释。

    此接口允许任意对象被ImageInputStream的实例“包装”。 例如,特定的ImageInputStreamSpi可能允许将通用InputStream用作输入源; 另一个人可能会从URL获取输入。

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

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

      • inputClass

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

      • ImageInputStreamSpi

        protected ImageInputStreamSpi()
        构造一个空白ImageInputStreamSpi 由子类来初始化实例变量和/或覆盖方法实现,以便提供所有方法的工作版本。
      • ImageInputStreamSpi

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

      • getInputClass

        public <?> getInputClass()
        返回一个表示必须由输入源,以便被实现为“包装”在的类或接口类型的对象ImageInputStream经由createInputStreamInstance方法。

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

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

        public boolean canUseCacheFile()
        返回true如果ImageInputStream与此服务提供者关联实现可选择使用了改进的性能和/或内存占用一个缓存文件。 如果false ,该值useCache参数createInputStreamInstance将被忽略。

        默认实现返回false

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

        public boolean needsCacheFile()
        返回true如果ImageInputStream与此服务提供相关的实施需要使用一个缓存File 如果true ,该值useCache参数createInputStreamInstance将被忽略。

        默认实现返回false

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

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

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