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, supportsStandardStreamMetadataFormatvendorName, 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, isStandardStreamMetadataFormatSupportedgetDescription, 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)
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.