public abstract class ImageReaderSpi extends ImageReaderWriterSpi
ImageReader
s。对服务类的更多信息,见的
IIORegistry
类类的评论。
每个ImageReaderSpi
提供几种类型的信息的ImageReader
类与关联。
谁定义SPI类和简要说明类供应商的名称可以通过getVendorName
,getDescription
,和getVersion
方法。这些方法可能是国际化的,提供特定区域的输出。这些方法的目的主要是提供简短的,人类可读的信息,可能会被用来组织一个弹出式菜单或其他列表。
格式名称,文件后缀列表,和MIME类型与服务相关的可能的getFormatNames
,getFileSuffixes
手段获得的,和getMIMETypes
方法。这些方法可以用来确定解码特定文件或基于手册的格式选择,流的候选人ImageReader
s文件命名,或哑剧演员协会(例如,访问HTTP或作为电子邮件附件的文件时)。
确定ImageReader
s可能可以分析特定数据流的canDecodeInput
方法提供一个更可靠的方法。这种方法允许服务提供程序检查实际的流内容。
最后,与此相关的服务提供商ImageReader
类的实例可以通过调用createReaderInstance
方法得到的。任何重量级的初始化,如本地库的加载或大表的创建,都应该推迟到该方法的第一次调用为止。
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 实现的一个实例。
|
abstract ImageReader |
createReaderInstance(Object extension)
返回与该服务提供商相关的
ImageReader 实现的一个实例。
|
String[] |
getImageWriterSpiNames()
返回包含完全限定名称的所有
ImageWriterSpi 类可以理解这个服务提供商相关的
ImageReader 使用内部元数据表示
String s数组,或
null 如果没有这样的
ImageWriter s指定。
|
类[] |
getInputTypes()
返回
类 对象说明什么类型的对象可以作为读者的
setInput 方法的参数数组。
|
boolean |
isOwnReader(ImageReader reader)
返回
true 如果通过在
ImageReader 对象是与此相关的服务提供商
ImageReader 实例。
|
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
-非-
String
s指示格式名称
null
阵列。至少有一个条目必须存在。
suffixes
-
String
s表示普通文件后缀数组。如果没有定义后缀,
null
应提供。长度为0的数组将被归到
null
。
MIMETypes
-
String
s指示格式的MIME类型的数组。如果未定义的MIME类型,
null
应提供。长度为0的数组将被归到
null
。
readerClassName
-相关
ImageReader
类的完全限定名,作为一个非
null
String
。
inputTypes
-非
null
数组对象的长度至少为1
类
指示法律输入类型。
writerSpiNames
-数组
String
s命名所有相关
ImageWriter
s类,或
null
。长度为0的数组是归一化
null
。
supportsStandardStreamMetadataFormat
-
boolean
指示数据流对象可以使用标准的元数据格式描述的树。
nativeStreamMetadataFormatName
-
String
,或
null
,归还从
getNativeStreamMetadataFormatName
。
nativeStreamMetadataFormatClassName
-
String
,或
null
,用来实例化一个元数据格式对象被返回
getNativeStreamMetadataFormat
。
extraStreamMetadataFormatNames
-
String
s,数组或
null
,归还从
getExtraStreamMetadataFormatNames
。长度为0的数组归一化
null
。
extraStreamMetadataFormatClassNames
-
String
s,数组或
null
,用来实例化一个元数据格式对象被返回
getStreamMetadataFormat
。长度为0的数组是归一化
null
。
supportsStandardImageMetadataFormat
-
boolean
指示图像元数据对象可以使用标准的元数据格式描述的树。
nativeImageMetadataFormatName
-
String
,或
null
,归还从
getNativeImageMetadataFormatName
。
nativeImageMetadataFormatClassName
-
String
,或
null
,用来实例化一个元数据格式对象被返回
getNativeImageMetadataFormat
。
extraImageMetadataFormatNames
-
String
s归还从
getExtraImageMetadataFormatNames
数组。长度为0的数组是归一化
null
。
extraImageMetadataFormatClassNames
-
String
s,数组或
null
,用来实例化一个元数据格式对象被返回
getImageMetadataFormat
。长度为0的数组是归一化
null
。
null
vendorName
IllegalArgumentException
。
null
version
IllegalArgumentException
。
IllegalArgumentException
-如果
names
是
null
或长度为0。
null
readerClassName
IllegalArgumentException
。
IllegalArgumentException
-如果
inputTypes
是
null
或长度为0。
public 类[] getInputTypes()
类
对象说明什么类型的对象可以作为读者的
setInput
方法的参数数组。
对于大多数读者来说,只接受来自一个ImageInputStream
输入、单元素数组包含ImageInputStream.class
应该归还。
类
objects
null
数组长度。
public abstract boolean canDecodeInput(Object source) throws IOException
true
如果提供的源对象似乎是这个读者所支持的格式。从这个方法返回
true
不保证读书会成功的,只是,似乎有一个合理的基于流的内容简要检查成功的机会。如果源是一个
ImageInputStream
,实现将普遍检查的前几个字节流为“幻数”相关的格式。一旦实际阅读已经开始,读者可能仍然表示失败在完成解码之前的任何时间。
该对象的状态不被打扰,其他ImageReaderSpi
s可以正确地确定它们是否能够解读的对象是很重要的。特别是,如果源是一个ImageInputStream
,一mark
/ reset
对应该用来保存流的位置。
如“RAW格式,“这可能会尝试读取几乎任何流,应该返回false
为了避免偏好更加匹配调用。
如果source
不是一个实例一个类返回的getInputTypes
,方法就简单的返回false
。
source
-对象(通常是一个
ImageInputStream
)进行解码。
true
流可以被解码。
null
source
IllegalArgumentException
。
IOException
流发生I/O错误。
public ImageReader createReaderInstance() throws IOException
ImageReader
实现的一个实例。返回的对象将首先在初始状态,如果其
reset
方法被称为。
默认的实现简单的返回createReaderInstance(null)
。
ImageReader
实例。
IOException
-如果在加载过程中发生错误,或初始化该类读者,或在读者对象的实例化和初始化。
public abstract ImageReader createReaderInstance(Object extension) throws IOException
ImageReader
实现的一个实例。返回的对象将首先在初始状态,如果其
reset
方法被称为。
一个Object
可施工时间提供给插件。对象的性质完全是插件特定的。
通常,一个插件将使用代码如return new MyImageReader(this)
实现这个方法。
extension
-插件特定的扩展对象,这可能是
null
。
ImageReader
实例。
IOException
-如果试图实例化阅读器不能。
IllegalArgumentException
-如果
ImageReader
的构造函数抛出
IllegalArgumentException
表明扩展对象是不合适的。
public boolean isOwnReader(ImageReader reader)
true
如果通过在
ImageReader
对象是与此相关的服务提供商
ImageReader
实例。
默认的实现比较的完全限定类名的类名称传递到构造函数的参数的reader
。这种方法可以重写,如果更复杂的检查是必需的。
reader
-
ImageReader
实例。
true
如果
reader
是公认的。
null
reader
IllegalArgumentException
。
public String[] getImageWriterSpiNames()
ImageWriterSpi
类可以理解这个服务提供商相关的
ImageReader
使用内部元数据表示
String
s数组,或
null
如果没有这样的
ImageWriter
s指定。如果非
null
返回值,它必须具有非零长度。
数组中的第一项必须为“首选”的作家的服务提供商的名称,因为它会被用来实例化ImageWriter
返回ImageIO.getImageWriter(ImageReader)
。
这种机制可以用来获得ImageWriters
会理解非像素元数据的内部结构(见IIOTreeInfo
)产生的ImageReader
。从ImageReader
获取数据并将其传递给一个用这种方法获得的ImageWriters
,客户端程序可以读取图像,修改它,以某种方式,把它写出来,保留所有的元数据,而无需了解数据的内部结构的东西,甚至对图像格式。
ImageWriterSpi
String
s数组,或
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.