public interface ImageTranscoder
任何图像可以转码(写一个不同的格式比它原本储存在)只执行读操作是由一个写操作。然而,在这个过程中,由于格式上的差异,可能会出现数据丢失。
一般来说,最好的结果一定会实现当特定格式的元数据对象可以创建封装了图像及其相关的元数据作为可能的信息,在这方面被用于执行编码的具体ImageWriter
理解。
一个ImageTranscoder
可用于转换的ImageReader
提供IIOMetadata
对象(即每流每图像元数据)到相应的对象适合于特定的ImageWriter
编码。在这种情况下,该接口的方法被称为直接在ImageWriter
,输出将适用于作家。
将一IIOMetadata
对象到一个作家的特定格式的内部细节将根据运行的上下文而变化。通常,一个ImageWriter
将检查是否实现了额外的接口,作者是熟悉的传入的对象。这可能是这样的情况,例如,如果对象是通过在同一个供应商的同一个供应商写的一个读写器上的一个读操作的方式获得。在这种情况下,作者可以通过它的插件特定的接口来访问传入的对象。在这种情况下,重新编码可能是接近无损,如果图像文件格式保持恒定。如果格式是改变的,作者可能仍然试图保存尽可能多的信息。
如果输入的对象不执行任何额外的接口称为作家,作家只好通过标准接口提供的IIOMetadata
等IIOMetadata.getAsTree
树视图。在这种情况下,有可能是显着的信息丢失。
一个独立的ImageTranscoder
本质上就是以角色为作者在以上例子插件一样。必须熟悉专用接口的读者和作家的插件,并手动实例化一个对象,将由作家可用。由此产生的元数据对象可以直接使用。
没有独立的实现ImageTranscoder
提供标准的API的一部分。相反,这个接口的目的是提供一种方法来创建和应用程序发现的应用程序,因为需要。
Modifier and Type | Method and Description |
---|---|
IIOMetadata |
convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
返回一个
IIOMetadata 对象可用于编码和随意修改使用文件接口或其他接口具体到作家的插件,将用于编码。
|
IIOMetadata |
convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
返回一个
IIOMetadata 对象可用于编码和随意修改使用文件接口或其他接口具体到作家的插件,将用于编码。
|
IIOMetadata convertStreamMetadata(IIOMetadata inData, ImageWriteParam param)
IIOMetadata
对象可用于编码和随意修改使用文件接口或其他接口具体到作家的插件,将用于编码。
一个可选的ImageWriteParam
可提供的情况下,它可能会影响的数据流结构。
如果提供的ImageWriteParam
包含可选的设置值的作家或转码的不理解,他们将被忽略。
inData
-
IIOMetadata
对象代表数据流,用于初始化返回的对象的状态。
param
-
ImageWriteParam
将用于对图像进行编码,或
null
。
IIOMetadata
对象,或
null
如果插件没有提供元数据编码能力。
null
inData
IllegalArgumentException
。
IIOMetadata convertImageMetadata(IIOMetadata inData, ImageTypeSpecifier imageType, ImageWriteParam param)
IIOMetadata
对象可用于编码和随意修改使用文件接口或其他接口具体到作家的插件,将用于编码。
一个可选的ImageWriteParam
可提供的情况下,它可能会影响图像的元数据结构。
如果提供的ImageWriteParam
包含可选的设置值的作家或转码的不理解,他们将被忽略。
inData
-
IIOMetadata
对象表示图像的元数据,用于初始化返回的对象的状态。
imageType
-
ImageTypeSpecifier
指示的布局和颜色信息的图像的元数据将相关。
param
-
ImageWriteParam
将用于对图像进行编码,或
null
。
IIOMetadata
对象,或
null
如果插件没有提供元数据编码能力。
IllegalArgumentException
-如果
inData
或
imageType
是
null
。
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.