|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.imageio.spi
类 ImageReaderSpi
java.lang.Object javax.imageio.spi.IIOServiceProvider javax.imageio.spi.ImageReaderWriterSpi javax.imageio.spi.ImageReaderSpi
- 所有已实现的接口:
- RegisterableService
-
public abstract class ImageReaderSpi
- extends ImageReaderWriterSpi
用于 ImageReader
的服务提供程序接口 (SPI)。有关服务提供程序类的更多信息,请参见 IIORegistry
类的注释。
每个 ImageReaderSpi
都提供了有关与之关联的 ImageReader
类的几种类型的信息。
使用 getVendorName
、getDescription
和 getVersion
方法可获得定义 SPI 类和此类简明描述的供应商的名称。可将这些方法进行国际化以提供特对于语言环境的输出。这些方法主要用于提供可用于组织弹出菜单或其他列表的简短人类可读信息。
使用 getFormatNames
、getFileSuffixes
和 getMIMETypes
方法可获得与此服务有关联的格式名称、文件后缀和 MIME 类型的列表。可以使用这些方法来标识候选 ImageReader
,从而基于手动格式选择、文件命名或 MIME 关联(例如,通过 HTTP 访问文件或文件作为电子邮件附件)对特定的文件或流进行解码。
canDecodeInput
方法提供了确定哪些 ImageReader
最有可能解析特定数据流的一条更可靠途径。此方法允许服务提供程序检查实际的流内容。
最后,通过调用 createReaderInstance
方法,可获得与此服务提供程序关联的 ImageReader
类的实例。任何重量级的初始化,例如加载本地库或创建大型表,都应推迟,至少应该推迟到完成此方法的第一次调用。
- 另请参见:
-
IIORegistry
,ImageReader
字段摘要 | |
---|---|
protected Class[] |
inputTypes 将从 getInputTypes 返回的 Class 对象数组,该数组最初为 null 。 |
static Class[] |
STANDARD_INPUT_TYPE 将从 getInputTypes 返回的单元素数组,该数组最初包含 ImageInputStream.class 。 |
protected String[] |
writerSpiNames 将从 getImageWriterSpiNames 返回的字符串数组,该数组最初为 null 。 |
从类 javax.imageio.spi.IIOServiceProvider 继承的字段 |
---|
vendorName, version |
构造方法摘要 | |
---|---|
protected |
ImageReaderSpi() 构造一个空的 ImageReaderSpi 。 |
|
ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, Class[] inputTypes, String[] writerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames) 用给定的一组值构造 ImageReaderSpi 。 |
方法摘要 | |
---|---|
abstract boolean |
canDecodeInput(Object source) 如果给定的源对象看起来是此 reader 支持的格式,则返回 true 。 |
ImageReader |
createReaderInstance() 返回与此服务提供程序关联的 ImageReader 实现的实例。 |
abstract ImageReader |
createReaderInstance(Object extension) 返回与此服务提供程序关联的 ImageReader 实现的实例。 |
String[] |
getImageWriterSpiNames() 返回一个 String 数组,其包含所有能够理解由与此服务提供程序关联的 ImageReader 使用的内部元数据表示形式的 ImageWriterSpi 类的完全限定名。 |
Class[] |
getInputTypes() 返回 Class 对象数组,指示可用作 reader 的 setInput 方法参数的对象类型。 |
boolean |
isOwnReader(ImageReader reader) 如果传入的 ImageReader 对象为与此服务提供程序关联的 ImageReader 的实例,则返回 true 。 |
从类 javax.imageio.spi.IIOServiceProvider 继承的方法 |
---|
getDescription, getVendorName, getVersion, onDeregistration, onRegistration |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
STANDARD_INPUT_TYPE
public static final Class[] STANDARD_INPUT_TYPE
-
将从
getInputTypes
返回的单元素数组,该数组最初包含ImageInputStream.class
。
inputTypes
protected Class[] inputTypes
-
将从
getInputTypes
返回的Class
对象数组,该数组最初为null
。
writerSpiNames
protected String[] writerSpiNames
-
将从
getImageWriterSpiNames
返回的字符串数组,该数组最初为null
。
构造方法详细信息 |
---|
ImageReaderSpi
protected ImageReaderSpi()
-
构造一个空的
ImageReaderSpi
。为提供所有方法的可用版本,由子类负责初始化实例变量和/或重写方法实现。
ImageReaderSpi
public ImageReaderSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String readerClassName, Class[] 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
数组。必须至少有一个项。 -
suffixes
- 指示常用文件后缀的String
数组。如果没有定义后缀,则应将其指定为null
。长度为 0 的数组将被标准化为null
。 -
MIMETypes
- 指示格式的 MIME 类型的String
数组。如果没有定义 MIME 类型,则应将其指定为null
。长度为 0 的数组将被标准化为null
。 -
readerClassName
- 所关联的ImageReader
类的完全限定名,它为一个非null
的String
。 -
inputTypes
- 指示合法输入类型的长度至少为 1 的Class
对象的非null
数组。 -
writerSpiNames
- 命名所有与ImageWriter
关联的类的String
数组,或者为null
。长度为 0 的数组将被标准化为null
。 -
supportsStandardStreamMetadataFormat
- 一个boolean
值,指示流元数据对象是否可使用由标准元数据格式描述的树。 -
nativeStreamMetadataFormatName
- 从getNativeStreamMetadataFormatName
返回的一个String
,或者为null
。 -
nativeStreamMetadataFormatClassName
- 将用于实例化从getNativeStreamMetadataFormat
返回的元数据格式对象的String
,或者为null
。 -
extraStreamMetadataFormatNames
- 从getExtraStreamMetadataFormatNames
返回的String
数组,或者为null
。长度为 0 的数组将被标准化为null
。 -
extraStreamMetadataFormatClassNames
- 用于实例化从getStreamMetadataFormat
返回的元数据格式对象的String
数组,或者为null
。长度为 0 的数组将被标准化为null
。 -
supportsStandardImageMetadataFormat
- 一个boolean
值,指示图像元数据对象是否可使用由标准元数据格式描述的树。 -
nativeImageMetadataFormatName
- 从getNativeImageMetadataFormatName
返回的一个String
,或者为null
。 -
nativeImageMetadataFormatClassName
- 用于实例化从getNativeImageMetadataFormat
返回的元数据格式对象的String
,或者为null
。 -
extraImageMetadataFormatNames
- 从getExtraImageMetadataFormatNames
返回的String
数组。长度为 0 的数组将被标准化为null
。 -
extraImageMetadataFormatClassNames
- 用于实例化从getImageMetadataFormat
返回的元数据格式对象的String
数组,或者为null
。长度为 0 的数组将被标准化为null
。 - 抛出:
-
IllegalArgumentException
- 如果vendorName
为null
。 -
IllegalArgumentException
- 如果version
为null
。 -
IllegalArgumentException
- 如果names
为null
或长度为 0。 -
IllegalArgumentException
- 如果readerClassName
为null
。 -
IllegalArgumentException
- 如果inputTypes
为null
或长度为 0。
方法详细信息 |
---|
getInputTypes
public Class[] getInputTypes()
-
返回
Class
对象数组,指示可用作 reader 的setInput
方法参数的对象类型。对于大多数只接受来自
ImageInputStream
的输入的 reader,应返回一个包含ImageInputStream.class
的单元素数组。 -
- 返回:
-
非
null
的长度至少为 1 的Class
对象数组。
canDecodeInput
public abstract boolean canDecodeInput(Object source) throws IOException
-
如果给定的源对象看起来是此 reader 支持的格式,则返回
true
。从此方法返回true
并不保证将成功读取,只表示基于对流内容的简明检查应该有机会成功。如果此源为ImageInputStream
,实现通常将首先检查流的前几个字节以获取与格式关联的“幻数”。实际的读取已开始后,在解码完成之前的任何时间 reader 仍有可能指示失败。对象的状态不受影响非常重要,这样其他的
ImageReaderSpi
才能够正确确定它们是否能解码此对象。特别地,如果该源为ImageInputStream
,应使用mark
/reset
对保护此流的位置。对于可能尝试读取几乎所有流的格式(比如“原始”格式),为避免因采用更相近的匹配而引起调用,应返回
false
。如果
source
不是由getInputTypes
返回的类之一的实例,此方法应只返回false
。 -
- 参数:
-
source
- 要解码的对象(通常是一个ImageInputStream
)。 - 返回:
-
如果此流可能解码,则返回
true
。 - 抛出:
-
IllegalArgumentException
- 如果source
为null
。 -
IOException
- 如果读取该流时发生 I/O 错误。
createReaderInstance
public ImageReader createReaderInstance() throws IOException
-
返回与此服务提供程序关联的
ImageReader
实现的实例。返回的对象初始时处于初始状态,好像调用过其reset
方法。默认实现只返回
createReaderInstance(null)
。 -
- 返回:
-
一个
ImageReader
实例。 - 抛出:
-
IOException
- 如果加载或初始化 reader 类时发生错误,或在初始化或实例化 reader 对象时发生错误。
createReaderInstance
public abstract ImageReader createReaderInstance(Object extension) throws IOException
-
返回与此服务提供程序关联的
ImageReader
实现的实例。返回的对象初始时处于初始状态,好像调用过其reset
方法。可以在构造时向插件提供
Object
。对象的本质完全由插件决定。通常情况下,插件将使用类似
return new MyImageReader(this)
的代码实现此方法。 -
- 参数:
-
extension
- 特定于插件的扩展对象,它可以为null
。 - 返回:
-
一个
ImageReader
实例。 - 抛出:
-
IOException
- 如果实例化此 reader 的尝试失败。 -
IllegalArgumentException
- 如果ImageReader
构造方法抛出一个IllegalArgumentException
,以指示此扩展对象不适合在这里使用。