|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.imageio.spi
类 ImageWriterSpi
java.lang.Object javax.imageio.spi.IIOServiceProvider javax.imageio.spi.ImageReaderWriterSpi javax.imageio.spi.ImageWriterSpi
- 所有已实现的接口:
- RegisterableService
-
public abstract class ImageWriterSpi
- extends ImageReaderWriterSpi
用于 ImageWriter
的服务提供程序接口 (SPI)。有关服务提供程序类的更多信息,请参见 IIORegistry
类的注释。
每个 ImageWriterSpi
都提供了有关与之关联的 ImageWriter
类的几种类型的信息。
使用 getVendorName
、getDescription
和 getVersion
方法可获得定义 SPI 类和此类简明描述的供应商的名称。可将这些方法进行国际化,以提供特对于语言环境的输出。这些方法主要用于提供可用于组织弹出菜单或其他列表的简短可写信息。
使用 getFormatNames
、getFileSuffixes
和 getMIMEType
方法可获得与服务有关联的格式名称、文件后缀和 MIME 类型的列表。使用这些方法可识别候选 ImageWriter
,从而基于手动格式选择、文件命名或 MIME 关联写入特定文件或流。
canEncodeImage
方法提供了确定最有可能解析特定数据流的 ImageWriter
的更可靠途径。此方法允许服务提供程序检查实际的图像内容。
最后,通过调用 createWriterInstance
方法,可获得与此服务提供程序关联的 ImageWriter
类的实例。任何重量级的初始化,例如加载本地库或创建大的表,都应推迟,至少应该推迟到完成此方法的第一次调用。
- 另请参见:
-
IIORegistry
,ImageTypeSpecifier
,ImageWriter
字段摘要 | |
---|---|
protected Class[] |
outputTypes 将从 getOutputTypes 返回的 Class 对象的数组,该数组最初为 null 。 |
protected String[] |
readerSpiNames 将从 getImageReaderSpiNames 返回的字符串数组,该数组最初为 null 。 |
static Class[] |
STANDARD_OUTPUT_TYPE 从 getInputTypes 返回的单元素数组,该数组最初包含 ImageInputStream.class 。 |
从类 javax.imageio.spi.IIOServiceProvider 继承的字段 |
---|
vendorName, version |
构造方法摘要 | |
---|---|
protected |
ImageWriterSpi() 构造一个空的 ImageWriterSpi 。 |
|
ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, Class[] outputTypes, String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames) 用给定的一组值构造 ImageWriterSpi 。 |
方法摘要 | |
---|---|
abstract boolean |
canEncodeImage(ImageTypeSpecifier type) 如果与此服务提供程序关联的 ImageWriter 实现能够使用给定的布局编码图像,则返回 true 。 |
boolean |
canEncodeImage(RenderedImage im) 如果与此服务提供程序关联的 ImageWriter 实现能够编码给定的 RenderedImage 实例,则返回 true 。 |
ImageWriter |
createWriterInstance() 返回与此服务提供程序关联的 ImageWriter 实现的实例。 |
abstract ImageWriter |
createWriterInstance(Object extension) 返回与此服务提供程序关联的 ImageWriter 实现的实例。 |
String[] |
getImageReaderSpiNames() 返回一个 String 数组,该数组包含所有能够理解由与此服务提供程序关联的 ImageWriter 使用的内部元数据表示形式的 ImageReaderSpi 类的完全限定名。 |
Class[] |
getOutputTypes() 返回 Class 对象数组,指示可用作 setOutput 方法参数的对象类型。 |
boolean |
isFormatLossless() 如果此 writer 输出的格式准确保留了像素数据位,则返回 true 。 |
boolean |
isOwnWriter(ImageWriter writer) 如果传入的 ImageWriter 对象是与此服务提供程序关联的 ImageWriter 的实例,则返回 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_OUTPUT_TYPE
public static final Class[] STANDARD_OUTPUT_TYPE
-
从
getInputTypes
返回的单元素数组,该数组最初包含ImageInputStream.class
。
outputTypes
protected Class[] outputTypes
-
将从
getOutputTypes
返回的Class
对象的数组,该数组最初为null
。
readerSpiNames
protected String[] readerSpiNames
-
将从
getImageReaderSpiNames
返回的字符串数组,该数组最初为null
。
构造方法详细信息 |
---|
ImageWriterSpi
protected ImageWriterSpi()
-
构造一个空的
ImageWriterSpi
。为提供所有方法的可用版本,由子类负责初始化实例变量和/或重写方法实现。
ImageWriterSpi
public ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, Class[] outputTypes, String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
-
用给定的一组值构造
ImageWriterSpi
。- 参数:
-
vendorName
- 供应商名称,它是一个非null
的String
。 -
version
- 版本标识符,它是一个非null
的String
。 -
names
- 指示格式名称的一个非null
的String
数组。必须至少有一个项。 -
suffixes
- 指示常用文件后缀的String
数组。如果没有定义后缀,则应指定为null
。长度为 0 的数组将被标准化为null
。 -
MIMETypes
- 指示格式的 MIME 类型的String
数组。如果没有定义后缀,则应指定为null
。长度为 0 的数组将被标准化为null
。 -
writerClassName
- 所关联的ImageWriterSpi
类的完全限定名,它为一个非null
的String
。 -
outputTypes
- 指示合法的输出类型的长度至少为 1 的Class
对象的数组。 -
readerSpiNames
- 命名所有与ImageReader
关联的类的长度至少为 1 的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
- 如果writerClassName
为null
。 -
IllegalArgumentException
- 如果outputTypes
为null
或长度为 0。
方法详细信息 |
---|
isFormatLossless
public boolean isFormatLossless()
-
如果此 writer 输出的格式准确保留了像素数据位,则返回
true
。默认实现返回true
。 -
- 返回:
-
如果格式完全保留了像素的准确性,则返回
true
。
getOutputTypes
public Class[] getOutputTypes()
-
返回
Class
对象数组,指示可用作setOutput
方法参数的对象类型。对于大多数只输出到
ImageOutputStream
的 writer,应返回一个包含ImageOutputStream.class
的单元素数组。 -
- 返回:
-
长度至少为 1 的、非
null
的Class
对象数组。
canEncodeImage
public abstract boolean canEncodeImage(ImageTypeSpecifier type)
-
如果与此服务提供程序关联的
ImageWriter
实现能够使用给定的布局编码图像,则返回true
。布局(即 图像的SampleModel
和ColorModel
)由ImageTypeSpecifier
对象描述。返回的值为
true
并不能绝对保证成功地编码;编码过程中仍有可能因为类似 I/O 错误、不一致或错误的数据结构等而产生错误。执行对图像的基本结构的合理检查是为了确定图像是否处在编码格式范围内。例如,如果要求一个只能编码灰度格式的服务提供程序处理 RGBBufferedImage
,将返回false
。类似地,能够编码 8 位 RGB 图像格式的服务提供程序可能拒绝编码与 alpha 通道关联的图像。不同的
ImageWriter
以及由此导致的不同的服务提供程序,可以更严格或更松散。例如,即使为了存储而不得不减少每个图像的像素,从而使精度下降,也有可能接受预乘 alpha 的图像。 -
- 参数:
-
type
- 指定将要写入的图像的布局的ImageTypeSpecifier
。 - 返回:
-
如果 writer 看起来能够按给定的布局编码此图像,则返回
true
。 - 抛出:
-
IllegalArgumentException
- 如果type
为null
。
canEncodeImage
public boolean canEncodeImage(RenderedImage im)
-
如果与此服务提供程序关联的
ImageWriter
实现能够编码给定的RenderedImage
实例,则返回true
。注意,这包括java.awt.image.BufferedImage
的实例。有关此方法的语义信息,请参见对
canEncodeImage(ImageTypeSpecifier)
的讨论。 -
- 参数:
-
im
- 要编码的RenderedImage
的实例。 - 返回:
-
如果 writer 看起来能够编码此图像,则返回
true
。 - 抛出:
-
IllegalArgumentException
- 如果im
为null
。