模块 java.desktop

类 ImageOutputStreamSpi

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

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

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

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

参见:
  • 字段详细信息

    • 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 对象,表示必须由输出目标实现的类或接口类型,以便通过 createOutputStreamInstance 方法“包装”在 ImageOutputStream 中。

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

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

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

      默认实现返回 false

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

      public boolean needsCacheFile()
      如果与此服务提供商关联的 ImageOutputStream 实现需要使用缓存 File,则返回 true

      默认实现返回 false

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

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

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