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