public abstract class ImageReaderSpi extends ImageReaderWriterSpi
ImageReader
秒。
有关服务提供程序类的更多信息,请参阅IIORegistry
类的类注释。
每个ImageReaderSpi
提供了与它相关联的ImageReader
类的几种类型的信息。
谁定义的SPI类和类的简要说明供应商的名称通过可getVendorName
, getDescription
和getVersion
方法。 这些方法可以被国际化以提供特定于区域的输出。 这些方法主要用于提供可用于组织弹出菜单或其他列表的简短的,可读的信息。
格式名称,文件后缀,以及与该服务相关联MIME类型的列表可通过的方式获得getFormatNames
, getFileSuffixes
和getMIMETypes
方法。 这些方法可以被用于识别候选ImageReader
S表示基于手动格式选择,文件命名,或MIME关联(例如,通过HTTP访问或作为电子邮件附件的文件时)进行解码的特定文件或流。
通过canDecodeInput
方法提供了一种更可靠的方法来确定哪些ImageReader
可能能够解析特定的数据流。 此方法允许服务提供商检查实际的流内容。
最后,可以通过调用createReaderInstance
方法获得与该服务提供商相关ImageReader
类的实例。 任何重量级的初始化(如加载本机库或创建大型表)至少应该延迟至首次调用此方法为止。
IIORegistry
, ImageReader
Modifier and Type | Field and Description |
---|---|
protected 类[] |
inputTypes
从
getInputTypes 返回的一组
类 对象,最初是
null 。
|
static 类[] |
STANDARD_INPUT_TYPE
已弃用
而不是使用这个字段,直接创建等效的数组
{ ImageInputStream.class } 。
|
protected String[] |
writerSpiNames
从
getImageWriterSpiNames 返回的字符串数组,最初为
null 。
|
extraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormat
vendorName, version
Modifier | Constructor and Description |
---|---|
protected |
ImageReaderSpi()
构造一个空白
ImageReaderSpi 。
|
|
ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, 类[] inputTypes, String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
构造具有给定值的
ImageReaderSpi 。
|
Modifier and Type | Method and Description |
---|---|
abstract boolean |
canDecodeInput(Object source)
返回
true 如果提供的源对象看起来是读者支持的格式。
|
ImageReader |
createReaderInstance()
返回与此服务提供商
ImageReader ImageReader实现的实例。
|
abstract ImageReader |
createReaderInstance(Object extension)
返回与该服务提供商相关
ImageReader ImageReader实现的实例。
|
String[] |
getImageWriterSpiNames()
返回的数组
String 包含所有的完全合格的名称小号
ImageWriterSpi 类,可以理解由所使用的内部元数据表示
ImageReader 与此服务提供商相关联,或
null 如果没有这样
ImageWriter 指定秒。
|
类[] |
getInputTypes()
返回一个
类 对象的数组,
类 可以将什么类型的对象用作读者的
setInput 方法的参数。
|
boolean |
isOwnReader(ImageReader reader)
如果
true 的
ImageReader 对象是与此服务提供商
ImageReader ImageReader的一个实例,则
ImageReader true。
|
getExtraImageMetadataFormatNames, getExtraStreamMetadataFormatNames, getFileSuffixes, getFormatNames, getImageMetadataFormat, getMIMETypes, getNativeImageMetadataFormatName, getNativeStreamMetadataFormatName, getPluginClassName, getStreamMetadataFormat, isStandardImageMetadataFormatSupported, isStandardStreamMetadataFormatSupported
getDescription, getVendorName, getVersion, onDeregistration, onRegistration
@Deprecated public static final 类[] STANDARD_INPUT_TYPE
{ ImageInputStream.class }
。
ImageInputStream.class
,从返回
getInputTypes
。
protected 类[] inputTypes
类
对象的数组将从
getInputTypes
返回,最初为
null
。
protected String[] writerSpiNames
getImageWriterSpiNames
返回的字符串数组,最初为
null
。
protected ImageReaderSpi()
ImageReaderSpi
。
初始化实例变量和/或覆盖方法实现的子类是为了提供所有方法的工作版本。
public ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, 类[] inputTypes, String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
ImageReaderSpi
。
vendorName
- 供应商名称,非
null
String
。
version
- 版本标识符,作为非
null
String
。
names
- 表示格式名称的非null
数组String
s。
必须至少有一个条目。
suffixes
- 表示公共文件后缀的String
s的数组。
如果未定义后缀,则应提供null
。
长度为0的数组将被归一null
。
MIMETypes
-的阵列String
指示格式的MIME类型。
如果未定义MIME类型,则应提供null
。
长度为0的数组将被归一null
。
readerClassName
- 相关联的
ImageReader
类的完全限定名称,作为非
null
String
。
inputTypes
- 长度为至少为1的
类
对象的非
null
数组,
类
合法输入类型。
writerSpiNames
- 数组String
命名所有关联的ImageWriter
s或null
。
长度为0的数组被归一null
。
supportsStandardStreamMetadataFormat
- 一个
boolean
流元数据对象是否可以使用由标准元数据格式描述的树的boolean。
nativeStreamMetadataFormatName
- a
String
或
null
,将从
getNativeStreamMetadataFormatName
返回。
nativeStreamMetadataFormatClassName
- a
String
或
null
,用于实例化要从
getNativeStreamMetadataFormat
返回的元数据格式对象。
extraStreamMetadataFormatNames
- 要从getExtraStreamMetadataFormatNames
返回的String
s或null
的数组。
长度为0的数组被归一null
。
extraStreamMetadataFormatClassNames
- 用于实例化要从getStreamMetadataFormat
返回的元数据格式对象的String
s或null
的数组。
长度为0的数组被归一null
。
supportsStandardImageMetadataFormat
-
boolean
图像元数据对象是否可以使用由标准元数据格式描述的树的boolean。
nativeImageMetadataFormatName
- a
String
或
null
,将从
getNativeImageMetadataFormatName
返回。
nativeImageMetadataFormatClassName
- a
String
或
null
,用于实例化要从
getNativeImageMetadataFormat
返回的元数据格式对象。
extraImageMetadataFormatNames
-的阵列String
从返回小号getExtraImageMetadataFormatNames
。
长度为0的数组被归一null
。
extraImageMetadataFormatClassNames
- 用于实例化要从getImageMetadataFormat
返回的元数据格式对象的String
s或null
的数组。
长度为0的数组被归一null
。
IllegalArgumentException
- 如果
vendorName
是
null
。
IllegalArgumentException
- 如果
version
是
null
。
IllegalArgumentException
- 如果
names
是
null
或长度为0。
IllegalArgumentException
- 如果
readerClassName
是
null
。
IllegalArgumentException
- 如果
inputTypes
是
null
或长度为0。
public 类[] getInputTypes()
类
对象的数组, 类
可以将什么类型的对象用作读者的setInput
方法的参数。
对于大多数阅读器,它只能从接受输入ImageInputStream
,含有单元素数组ImageInputStream.class
应返回。
null
数组的长度至少为1的
类
对象。
public abstract boolean canDecodeInput(Object source) throws IOException
true
如果提供的源对象看起来是这个读者支持的格式。
从这种方法返回true
并不能保证阅读将成功,只是基于对流内容的简要检查,似乎有合理的成功机会。
如果源是ImageInputStream
,则实现将通常检查流的前几个字节与格式相关联的“魔术数”。
一旦实际读取开始,读取器可能仍然在解码完成之前的任何时间指示失败。
重要的是,对象的状态不会受到干扰,以便其他ImageReaderSpi
可以正确地确定它们是否能够解码该对象。 特别是,如果该源为ImageInputStream
,一个mark
/ reset
对应该用来保存流位置。
可能会尝试读取几乎任何流的“raw”格式应该返回false
,以避免被调用而不是更接近的匹配。
如果source
不是由getInputTypes
返回的一个类的getInputTypes
,则该方法应该简单地返回false
。
source
- 要解码的对象(通常为
ImageInputStream
)。
true
如果这个流很可能被解码。
IllegalArgumentException
- 如果
source
是
null
。
IOException
- 如果在读取流时发生I / O错误。
public ImageReader createReaderInstance() throws IOException
ImageReader
ImageReader实现的实例。
返回的对象最初将处于初始状态,就像其reset
方法已被调用一样。
默认实现只是返回createReaderInstance(null)
。
ImageReader
例子。
IOException
- 如果读取器类的加载或初始化期间或在读取器对象的实例化或初始化期间发生错误。
public abstract ImageReader createReaderInstance(Object extension) throws IOException
ImageReader
ImageReader实现的实例。
返回的对象最初将处于初始状态,就好像其reset
方法已被调用一样。
一个Object
可以被提供给该插件在施工时间。 对象的性质是完全插件具体的。
通常,插件将使用诸如return new MyImageReader(this)
之类的代码实现此方法。
extension
- 一个插件特定的扩展对象,可以是
null
。
ImageReader
例子。
IOException
- 如果尝试实例化读取器失败。
IllegalArgumentException
- 如果
ImageReader
的构造函数抛出一个
IllegalArgumentException
来表示扩展对象不合适。
public boolean isOwnReader(ImageReader reader)
true
如果ImageReader
在传递的对象是的实例ImageReader
与此服务提供者关联。
默认实现将reader
参数的完全限定类名与传递给reader
函数的类名进行比较。 如果需要更复杂的检查,该方法可能会被覆盖。
reader
- 一个
ImageReader
实例。
true
如果
reader
被识别。
IllegalArgumentException
- 如果
reader
是
null
。
public String[] getImageWriterSpiNames()
String
包含所有的完全合格的名称小号ImageWriterSpi
类,可以理解由所使用的内部元数据表示ImageReader
与此服务提供商相关联,或null
如果没有这样ImageWriter
指定秒。
如果返回非null
值,则它必须具有非零长度。
数组中的第一个项目必须是“首选”作者的服务提供商的名称,因为它将用于实例化由ImageWriter
返回的ImageIO.getImageWriter(ImageReader)
。
这种机制可以用来获得ImageWriters
将理解非像素元数据(见的内部结构IIOTreeInfo
)由生成的ImageReader
。 通过从获得该数据ImageReader
并将其传递到所述的一个ImageWriters
用这种方法获得的,客户端程序可以读取的图像,修改它以某种方式,并将其写回到出来,同时保留所有的元数据,而无需了解元数据的内部结构,甚至了解图像格式。
String
的长度至少为1的数组,
String
ImageWriterSpi
或
null
。
ImageIO.getImageWriter(ImageReader)