public abstract class ImageWriterSpi extends ImageReaderWriterSpi
ImageWriter
秒。
有关服务提供程序类的更多信息,请参阅IIORegistry
类的类注释。
每个ImageWriterSpi
提供了与它相关联的ImageWriter
类的几种类型的信息。
谁定义的SPI类和类的简要说明供应商的名称通过可getVendorName
, getDescription
和getVersion
方法。 这些方法可以被国际化以提供特定于区域的输出。 这些方法主要用于提供可用于组织弹出菜单或其他列表的简短的人类可写信息。
格式名称,文件后缀,以及与该服务相关联MIME类型的列表可通过的方式获得getFormatNames
, getFileSuffixes
和getMIMEType
方法。 这些方法可以被用于识别候选ImageWriter
S表示写入一个特定的文件或流基于手动格式选择,文件命名,或MIME关联。
通过canEncodeImage
方法提供了一种更可靠的方法来确定哪些ImageWriter
可能能够解析特定的数据流。 此方法允许服务提供商检查实际的图像内容。
最后,可以通过调用createWriterInstance
方法获得与该服务提供商相关ImageWriter
类的实例。 任何重量级的初始化(如加载本机库或创建大型表)至少应该延迟至首次调用此方法为止。
IIORegistry
, ImageTypeSpecifier
, ImageWriter
Modifier and Type | Field and Description |
---|---|
protected 类[] |
outputTypes
从
getOutputTypes 返回的
类 对象的数组,
类 为
null 。
|
protected String[] |
readerSpiNames
要从
getImageReaderSpiNames 返回的字符串数组,最初为
null 。
|
static 类[] |
STANDARD_OUTPUT_TYPE
已弃用
而不是使用此字段,直接创建等效数组
{ ImageOutputStream.class } 。
|
extraImageMetadataFormatClassNames, extraImageMetadataFormatNames, extraStreamMetadataFormatClassNames, extraStreamMetadataFormatNames, MIMETypes, names, nativeImageMetadataFormatClassName, nativeImageMetadataFormatName, nativeStreamMetadataFormatClassName, nativeStreamMetadataFormatName, pluginClassName, suffixes, supportsStandardImageMetadataFormat, supportsStandardStreamMetadataFormat
vendorName, version
Modifier | Constructor and Description |
---|---|
protected |
ImageWriterSpi()
构造一个空白
ImageWriterSpi 。
|
|
ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, 类[] outputTypes, String[] readerSpiNames, boolean supportsStandardStreamMetadataFormat, String nativeStreamMetadataFormatName, String nativeStreamMetadataFormatClassName, String[] extraStreamMetadataFormatNames, String[] extraStreamMetadataFormatClassNames, boolean supportsStandardImageMetadataFormat, String nativeImageMetadataFormatName, String nativeImageMetadataFormatClassName, String[] extraImageMetadataFormatNames, String[] extraImageMetadataFormatClassNames)
构造具有给定值的
ImageWriterSpi 。
|
Modifier and Type | Method and Description |
---|---|
abstract boolean |
canEncodeImage(ImageTypeSpecifier type)
如果与此服务提供商
ImageWriter 联的ImageWriter实现能够使用给定的布局对图像进行编码,则返回
true 。
|
boolean |
canEncodeImage(RenderedImage im)
如果与此服务提供商
ImageWriter 联的ImageWriter实现能够对给定的
RenderedImage 实例进行编码,则返回
true 。
|
ImageWriter |
createWriterInstance()
返回与此服务提供程序相关
ImageWriter ImageWriter实现的实例。
|
abstract ImageWriter |
createWriterInstance(Object extension)
返回与此服务提供程序相关
ImageWriter ImageWriter实现的实例。
|
String[] |
getImageReaderSpiNames()
返回的数组
String 包含所有的所有的完全合格的名称小号
ImageReaderSpi 类,可以理解由所使用的内部元数据表示
ImageWriter 与此服务提供商相关联,或
null 如果没有这样
ImageReaders 指定。
|
类[] |
getOutputTypes()
返回一个
类 对象的数组,
类 可以使用什么类型的对象作为撰写者的
setOutput 方法的参数。
|
boolean |
isFormatLossless()
返回
true 如果该写入器输出的格式可以精确保留像素数据。
|
boolean |
isOwnWriter(ImageWriter writer)
返回
true 如果
ImageWriter 在传递的对象是的实例
ImageWriter 与此服务提供者关联。
|
getExtraImageMetadataFormatNames, getExtraStreamMetadataFormatNames, getFileSuffixes, getFormatNames, getImageMetadataFormat, getMIMETypes, getNativeImageMetadataFormatName, getNativeStreamMetadataFormatName, getPluginClassName, getStreamMetadataFormat, isStandardImageMetadataFormatSupported, isStandardStreamMetadataFormatSupported
getDescription, getVendorName, getVersion, onDeregistration, onRegistration
@Deprecated public static final 类[] STANDARD_OUTPUT_TYPE
{ ImageOutputStream.class }
。
ImageOutputStream.class
,从
getOutputTypes
返回。
protected 类[] outputTypes
getOutputTypes
返回的
类
对象的数组,
类
为
null
。
protected String[] readerSpiNames
getImageReaderSpiNames
返回的字符串数组,最初为
null
。
protected ImageWriterSpi()
ImageWriterSpi
。
初始化实例变量和/或覆盖方法实现的子类是为了提供所有方法的工作版本。
public ImageWriterSpi(String vendorName, String version, String[] names, String[] suffixes, String[] MIMETypes, String writerClassName, 类[] 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
-的阵列String
指示格式的MIME类型。
如果未定义任何后缀,则应提供null
。
长度为0的数组将被归一null
。
writerClassName
- 相关联的
ImageWriterSpi
类的完全限定名称,作为非
null
String
。
outputTypes
- 长度至少为1的
类
对象的数组,
类
合法的输出类型。
readerSpiNames
- 数组String
的长度至少为1,命名所有关联的ImageReader
s或null
。
长度为0的数组被归一null
。
supportsStandardStreamMetadataFormat
-一个
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
- 如果
writerClassName
是
null
。
IllegalArgumentException
- 如果
outputTypes
是
null
或长度为0。
public boolean isFormatLossless()
true
如果此写入器输出的格式可精确保留像素数据。
默认实现返回true
。
true
如果格式保持了完整的像素精度。
public 类[] getOutputTypes()
类
对象的数组, 类
可以将什么类型的对象用作作者的setOutput
方法的参数。
对于大多数作家,其中仅输出到ImageOutputStream
,含有单元素数组ImageOutputStream.class
应返回。
类
个长度至少为1的
类
对象的非
null
数组。
public abstract boolean canEncodeImage(ImageTypeSpecifier type)
ImageWriter
联的ImageWriter实现能够对具有给定布局的图像进行编码,则返回true
。
布局( 即 ,图像的SampleModel
和ColorModel
)由ImageTypeSpecifier
对象描述。
返回值为true
不是成功编码的绝对保证; 编码过程可能由于诸如I / O错误,不一致或畸形数据结构等因素而产生错误。意图是对图像的基本结构进行合理检查,以便确定其是否在范围的编码格式。 例如,只能编码灰度的格式的服务提供商将返回false
如果交给RGB BufferedImage
。 类似地,可以编码8位RGB图像的格式的服务提供商可能拒绝对具有相关联的Alpha通道的图像进行编码。
不同的ImageWriter
s,因此服务提供商,可能会选择或多或少严格。 例如,他们可能接受具有预乘法α的图像,即使它们必须被分割出每个像素,以某种精度损失,以便被存储。
type
- 一个
ImageTypeSpecifier
要写入的图像的布局的ImageTypeSpecifier。
true
如果这个作者可能能够用给定的布局对图像进行编码。
IllegalArgumentException
- 如果
type
是
null
。
public boolean canEncodeImage(RenderedImage im)
ImageWriter
联的ImageWriter实现能够对给定的RenderedImage
实例进行编码,则返回true
。
请注意,这包括java.awt.image.BufferedImage的java.awt.image.BufferedImage
。
有关此方法的语义的canEncodeImage(ImageTypeSpecifier)
,请参阅canEncodeImage(ImageTypeSpecifier)的canEncodeImage(ImageTypeSpecifier)
。
im
- 要编码的
RenderedImage
的实例。
true
如果这个作者有可能对这个图像进行编码。
IllegalArgumentException
- 如果
im
是
null
。
public ImageWriter createWriterInstance() throws IOException
ImageWriter
ImageWriter实现的实例。
返回的对象最初将处于初始状态,就像其reset
方法已被调用一样。
默认实现只是返回createWriterInstance(null)
。
ImageWriter
例子。
IOException
- 如果在加载期间发生错误,或者写入器类的初始化,或者在写入器对象的实例化或初始化期间发生错误。
public abstract ImageWriter createWriterInstance(Object extension) throws IOException
ImageWriter
ImageWriter实现的实例。
返回的对象最初将处于初始状态,就好像其reset
方法已被调用一样。
一个Object
可以被提供给该插件在施工时间。 对象的性质是完全插件具体的。
通常,插件将使用诸如return new MyImageWriter(this)
之类的代码实现此方法。
extension
- 插件特定的扩展对象,可以是
null
。
ImageWriter
实例。
IOException
- 如果尝试实例化写入程序失败。
IllegalArgumentException
- 如果
ImageWriter
的构造函数抛出一个
IllegalArgumentException
来表示扩展对象不合适。
public boolean isOwnWriter(ImageWriter writer)
true
的
ImageWriter
对象是与此服务提供商
ImageWriter
ImageWriter的实例,则
ImageWriter
true。
writer
- 一个
ImageWriter
实例。
true
如果
writer
被识别
IllegalArgumentException
- 如果
writer
是
null
。
public String[] getImageReaderSpiNames()
String
包含所有的所有的完全合格的名称小号ImageReaderSpi
类,可以理解由所使用的内部元数据表示ImageWriter
与此服务提供商相关联,或null
如果没有这样ImageReaders
指定。
如果返回非null
值,它必须具有非零长度。
阵列中的第一个项目必须是“首选”阅读器的服务提供商的名称,因为它将用于实例化由ImageReader
返回的ImageIO.getImageReader(ImageWriter)
。
该机制可用于获得在ImageReaders
理解的结构中将产生非像素元数据(见IIOExtraDataInfo
)的ImageWriter
。 通过读取图像并从使用此方法获得的ImageReaders
获取此数据,并将其传递给ImageWriter
,客户端程序可以读取图像,以某种方式进行修改,并将其写回保留所有元数据,而不需要了解元数据的内部结构,甚至了解图像格式。
String
s的数组至少包含1个
ImageReaderSpi
s或
null
。
ImageIO.getImageReader(ImageWriter)
,
ImageReaderSpi.getImageWriterSpiNames()