Module java.desktop

Class ImageInputStreamSpi

java.lang.Object
javax.imageio.spi.IIOServiceProvider
javax.imageio.spi.ImageInputStreamSpi
所有已实现的接口:
RegisterableService

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

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

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

参见:
  • Field Details

    • inputClass

      protected Class<?> inputClass
      用于createInputStreamInstance方法的合法对象类型的Class对象。
  • Constructor Details

    • ImageInputStreamSpi

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

      public ImageInputStreamSpi(String vendorName, String version, Class<?> inputClass)
      使用给定的一组值构造一个ImageInputStreamSpi
      参数:
      vendorName - 供应商名称。
      version - 版本标识符。
      inputClass - 一个Class对象,指示createInputStreamInstance方法可使用的合法对象类型。
      抛出:
      IllegalArgumentException - 如果vendorNamenull
      IllegalArgumentException - 如果versionnull
  • Method Details

    • getInputClass

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

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

      返回:
      一个Class变量。
      参见:
    • canUseCacheFile

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

      默认实现返回false

      返回:
      如果此服务提供者创建的输入流可以使用缓存文件,则返回true
    • needsCacheFile

      public boolean needsCacheFile()
      如果与此服务提供者关联的ImageInputStream实现需要使用缓存File,则返回true。如果为true,则createInputStreamInstance方法的useCache参数将被忽略。

      默认实现返回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 - 如果需要缓存文件但cacheDirnull且不是目录。
      IOException - 如果需要缓存文件但无法创建。
      参见:
    • createInputStreamInstance

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