模块 java.desktop

类 ImageInputStreamSpi

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

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

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

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

参见:
  • 字段详细信息

    • inputClass

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

    • ImageInputStreamSpi

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

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

    • getInputClass

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

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

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

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

      默认实现返回 false

      返回:
      true 该服务提供商创建的输入流是否可以使用缓存文件。
    • needsCacheFile

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

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

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