javax.imageio.spi

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

public abstract class ImageOutputStreamSpi
     
extends IIOServiceProvider

用于 ImageOutputStream 的服务提供者接口 (SPI)。有关服务提供者接口的更多信息,请参见 IIORegistry 类的注释。

此接口允许由 ImageOutputStream 的实例“包装”任意对象。例如,特定的 ImageOutputStreamSpi 可能允许使用一般的 OutputStream 充当目标位置;另一个可能输出到一个 File 或类似串行端口的设备。

通过将 ImageOutputStream 的创建作为一个可插入的服务,实现了在不更改 API 的情况下对后续的输出目标位置的处理。另外,应用程序可以透明的方式安装和使用 ImageOutputStream 的高性能实现(例如,用于特定平台的本地实现)。

另请参见:
IIORegistry, ImageOutputStream

字段摘要
protected  Class<?> outputClass
          指示供 createInputStreamInstance 方法使用的合法对象类型的 Class 对象。
 
从类 javax.imageio.spi.IIOServiceProvider 继承的字段
vendorName, version
 
构造方法摘要
protected ImageOutputStreamSpi()
          构造一个空的 ImageOutputStreamSpi
  ImageOutputStreamSpi(String vendorName, String version, Class<?> outputClass)
          用给定的一组值构造 ImageOutputStreamSpi
 
方法摘要
 boolean canUseCacheFile()
          如果与此服务提供者关联的 ImageOutputStream 实现可选择利用缓存 File 改善性能和/或内存占用,则返回 true
 ImageOutputStream createOutputStreamInstance(Object output)
          返回与此服务提供者关联的 ImageOutputStream 实现的实例。
abstract  ImageOutputStream createOutputStreamInstance(Object output, boolean useCache, File cacheDir)
          返回与此服务提供者关联的 ImageOutputStream 实现的实例。
 Class<?> getOutputClass()
          返回表示必须由输出目标位置实现(以便使用 createOutputStreamInstance 方法在 ImageOutputStream 中“包装”)的类或接口的类型的 Class 对象。
 boolean needsCacheFile()
          如果与此服务提供者关联的 ImageOutputStream 实现要求使用缓存 File,则返回 true
 
从类 javax.imageio.spi.IIOServiceProvider 继承的方法
getDescription, getVendorName, getVersion, onDeregistration, onRegistration
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

outputClass

protected Class<?> outputClass
指示供 createInputStreamInstance 方法使用的合法对象类型的 Class 对象。

构造方法详细信息

ImageOutputStreamSpi

protected ImageOutputStreamSpi()
构造一个空的 ImageOutputStreamSpi。为提供所有方法的可用版本,由子类负责初始化实例变量和/或重写方法实现。


ImageOutputStreamSpi

public ImageOutputStreamSpi(String vendorName,
                            String version,
                            Class<?> outputClass)
用给定的一组值构造 ImageOutputStreamSpi

参数:
vendorName - 供应商名称。
version - 版本标识符。
outputClass - 指示供 createOutputStreamInstance 方法使用的合法对象类型的 Class 对象。
抛出:
IllegalArgumentException - 如果 vendorNamenull
IllegalArgumentException - 如果 versionnull
方法详细信息

getOutputClass

public Class<?> getOutputClass()
返回表示必须由输出目标位置实现(以便使用 createOutputStreamInstance 方法在 ImageOutputStream 中“包装”)的类或接口的类型的 Class 对象。

通常的返回值可能包含 OutputStream.classFile.class,但可能使用任何类。

返回:
一个 Class 变量。
另请参见:
createOutputStreamInstance(Object, boolean, File)

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 - 如果需要缓存文件但无法创建。
另请参见:
getOutputClass()

createOutputStreamInstance

public ImageOutputStream createOutputStreamInstance(Object output)
                                             throws IOException
返回与此服务提供者关联的 ImageOutputStream 实现的实例。如果需要,将在系统相应的默认临时文件目录中创建缓存文件。

参数:
output - 一个由 getOutputClass 返回的类类型的对象。
返回:
一个 ImageOutputStream 实例。
抛出:
IllegalArgumentException - 如果 output 不是一个正确的类的实例,或者为 null
IOException - 如果需要缓存文件但无法创建。
另请参见:
getOutputClass()