java.lang.Objectjavax.imageio.spi.IIOServiceProvider
javax.imageio.spi.ImageInputStreamSpi
public abstract class ImageInputStreamSpi
用于 ImageInputStream 的服务提供者接口 (SPI)。有关服务提供者接口的更多信息,请参见 IIORegistry 类的类注释。
此接口允许由 ImageInputStream 的实例“包装”任意对象。例如,一个特定的 ImageInputStreamSpi 可能允许使用一般的 InputStream 充当输入源;另一个可能使用来自 URL 的输入。
通过将 ImageInputStream 的创建作为一个可插入的服务,实现了在不更改 API 的情况下对后续的输入源的处理。另外,应用程序可以透明的方式安装和使用 ImageInputStream 的高性能实现(例如,用于特定平台的本地实现)。
IIORegistry,
ImageInputStream
| 字段摘要 | |
|---|---|
protected Class<?> |
inputClass 指示供 createInputStreamInstance 方法使用的合法对象类型的 Class 对象。 |
| 从类 javax.imageio.spi.IIOServiceProvider 继承的字段 |
|---|
vendorName, version |
| 构造方法摘要 | |
|---|---|
protected |
ImageInputStreamSpi() 构造一个空的 ImageInputStreamSpi。 |
|
ImageInputStreamSpi(String vendorName, String version, Class<?> inputClass) 用给定的一组值构造 ImageInputStreamSpi。 |
| 方法摘要 | |
|---|---|
boolean |
canUseCacheFile() 如果与此服务提供者关联的 ImageInputStream 实现可选择利用缓存文件改善性能和/或内存占用,则返回 true。 |
ImageInputStream |
createInputStreamInstance(Object input) 返回与此服务提供者关联的 ImageInputStream 实现的实例。 |
abstract ImageInputStream |
createInputStreamInstance(Object input, boolean useCache, File cacheDir) 返回与此服务提供者关联的 ImageInputStream 实现的实例。 |
Class<?> |
getInputClass() 返回表示必须由输入源实现(以便使用 createInputStreamInstance 方法在 ImageInputStream 中“包装”)的类或接口的类型的 Class 对象。 |
boolean |
needsCacheFile() 如果与此服务提供者关联的 ImageInputStream 实现要求使用缓存 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 |
| 字段详细信息 |
|---|
protected Class<?> inputClass
createInputStreamInstance 方法使用的合法对象类型的
Class 对象。
| 构造方法详细信息 |
|---|
protected ImageInputStreamSpi()
ImageInputStreamSpi。为提供所有方法的可用版本,由子类负责初始化实例变量和/或重写方法实现。
public ImageInputStreamSpi(String vendorName, String version, Class<?> inputClass)
ImageInputStreamSpi。
vendorName - 供应商名称。
version - 版本标识符。
inputClass - 指示供
createInputStreamInstance 方法使用的合法对象类型的
Class 对象。
IllegalArgumentException - 如果
vendorName 为
null。
IllegalArgumentException - 如果
version 为
null。
| 方法详细信息 |
|---|
public Class<?> getInputClass()
createInputStreamInstance 方法在
ImageInputStream 中“包装”)的类或接口的类型的
Class 对象。
通常的返回值可能包含 InputStream.class 或 URL.class,但可能使用任何类。
Class 变量。
createInputStreamInstance(Object, boolean, File)
public boolean canUseCacheFile()
ImageInputStream 实现可选择利用缓存文件改善性能和/或内存占用,则返回
true。如果为
false,则忽略
createInputStreamInstance 的
useCache 参数的值。
默认实现返回 false。
true。
public boolean needsCacheFile()
ImageInputStream 实现要求使用缓存
File,则返回
true。如果为
true,将忽略
createInputStreamInstance 的
useCache 变量的值。
默认实现返回 false。
true。
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()
public ImageInputStream createInputStreamInstance(Object input) throws IOException
ImageInputStream 实现的实例。如果需要,将在系统相应的默认临时文件目录中创建缓存文件。
input - 一个由
getInputClass 返回的类类型的对象。
ImageInputStream 实例。
IllegalArgumentException - 如果
input 不是一个正确的类的实例,或者为
null。
IOException - 如果需要缓存文件但无法创建。
getInputClass()