java.lang.Object
javax.imageio.spi.IIOServiceProvider
javax.imageio.spi.ImageInputStreamSpi
- 所有已实现的接口:
-
RegisterableService
ImageInputStream
的服务提供者接口(SPI)。有关服务提供者接口的更多信息,请参阅IIORegistry
类的类注释。
此接口允许任意对象通过ImageInputStream
的实例进行“包装”。例如,特定的ImageInputStreamSpi
可能允许将通用的InputStream
用作输入源;另一个可能从URL
获取输入。
通过将ImageInputStream
的创建视为可插拔服务,可以处理未来的输入源而无需更改API。此外,高性能的ImageInputStream
实现(例如,特定平台的本机实现)可以被安装并由应用程序透明地使用。
- 参见:
-
Field Summary
Modifier and TypeFieldDescriptionprotected Class
<?> 用于createInputStreamInstance
方法的合法对象类型的Class
对象。Fields declared in class javax.imageio.spi.IIOServiceProvider
vendorName, version
-
Constructor Summary
ModifierConstructorDescriptionprotected
构造一个空白的ImageInputStreamSpi
。ImageInputStreamSpi
(String vendorName, String version, Class<?> inputClass) 使用给定的一组值构造一个ImageInputStreamSpi
。 -
Method Summary
Modifier and TypeMethodDescriptionboolean
如果与此服务提供者关联的ImageInputStream
实现可以选择使用缓存文件以提高性能和/或内存占用,则返回true
。createInputStreamInstance
(Object input) 返回与此服务提供者关联的ImageInputStream
实现的实例。abstract ImageInputStream
createInputStreamInstance
(Object input, boolean useCache, File cacheDir) 返回与此服务提供者关联的ImageInputStream
实现的实例。Class
<?> 返回一个Class
对象,表示必须由输入源实现的类或接口类型,以便通过createInputStreamInstance
方法将其“包装”在ImageInputStream
中。boolean
如果与此服务提供者关联的ImageInputStream
实现需要使用缓存File
,则返回true
。Methods declared in class javax.imageio.spi.IIOServiceProvider
getDescription, getVendorName, getVersion, onDeregistration, onRegistration
-
Field Details
-
inputClass
用于createInputStreamInstance
方法的合法对象类型的Class
对象。
-
-
Constructor Details
-
ImageInputStreamSpi
protected ImageInputStreamSpi()构造一个空白的ImageInputStreamSpi
。子类需要初始化实例变量和/或覆盖方法实现,以提供所有方法的可用版本。 -
ImageInputStreamSpi
使用给定的一组值构造一个ImageInputStreamSpi
。- 参数:
-
vendorName
- 供应商名称。 -
version
- 版本标识符。 -
inputClass
- 一个Class
对象,指示createInputStreamInstance
方法可使用的合法对象类型。 - 抛出:
-
IllegalArgumentException
- 如果vendorName
为null
。 -
IllegalArgumentException
- 如果version
为null
。
-
-
Method Details
-
getInputClass
返回一个Class
对象,表示必须由输入源实现的类或接口类型,以便通过createInputStreamInstance
方法将其“包装”在ImageInputStream
中。典型的返回值可能包括
InputStream.class
或URL.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
- 如果需要缓存文件但cacheDir
非null
且不是目录。 -
IOException
- 如果需要缓存文件但无法创建。 - 参见:
-
createInputStreamInstance
返回与此服务提供者关联的ImageInputStream
实现的实例。如果需要,将在系统相关的默认临时文件目录中创建缓存文件。- 参数:
-
input
- 由getInputClass
返回的类类型的对象。 - 返回:
-
一个
ImageInputStream
实例。 - 抛出:
-
IllegalArgumentException
- 如果input
不是正确类的实例或为null
。 -
IOException
- 如果需要缓存文件但无法创建。 - 参见:
-