模块  java.desktop
软件包  javax.imageio

Interface ImageTranscoder

  • 所有已知实现类:
    ImageWriter

    public interface ImageTranscoder
    提供元数据转码功能的界面。

    可以简单地通过执行读取操作然后执行写入操作来对任何图像进行转码(写入与其最初存储的格式不同的格式)。 但是,由于格式差异,此过程中可能会丢失数据。

    通常,当可以创建特定于格式的元数据对象以尽可能多地封装关于图像及其关联元数据的信息时, ImageWriter用于执行编码的特定ImageWriter理解的术语来实现最佳结果。

    一个ImageTranscoder可以用于将转换IIOMetadata通过所供给的对象ImageReader (每流和每个图像元数据表示)转换成相应的由一个特定的对象适合于编码ImageWriter 如果直接在ImageWriter上调用此接口的方法,则输出将适合该ImageWriter

    IIOMetadata对象转换为特定于IIOMetadata格式的内部细节将根据操作的上下文而有所不同。 通常, ImageWriter将检查传入对象以查看它是否实现了编写者熟悉的其他接口。 例如,如果对象是通过与作者相同的供应商编写的读取器插件上的读取操作获得的,则可能是这种情况。 在这种情况下,编写器可以通过其插件特定接口访问传入对象。 在这种情况下,如果图像文件格式保持不变,则重新编码可能接近无损。 如果格式正在改变,作者仍可能尝试保留尽可能多的信息。

    如果传入对象没有实现IIOMetadata器已知的任何其他接口,则编写者别无选择,只能通过标准IIOMetadata接口(例如IIOMetadata.getAsTree提供的树视图)访问它。 在这种情况下,可能会有重大的信息丢失。

    独立的ImageTranscoder基本上与上述示例中的ImageTranscoder插件具有相同的作用。 它必须熟悉读取器和编写器插件使用的专用接口,并手动实例化编写器可以使用的对象。 编写器可以直接使用生成的元数据对象。

    没有提供ImageTranscoder独立实现作为标准API的一部分。 相反,此接口的目的是提供一种方法,以便在需要时由应用程序创建和发现实现。

    • 方法详细信息

      • convertStreamMetadata

        IIOMetadata convertStreamMetadata​(IIOMetadata inData,
                                          ImageWriteParam param)
        返回一个IIOMetadata对象,该对象可用于编码,并可选择使用其文档接口或特定于将用于编码的writer插件的其他接口进行修改。

        可以提供可选的ImageWriteParam以用于可能影响流元数据结构的情况。

        如果提供的ImageWriteParam包含此ImageWriteParam器或转码器无法理解的可选设置值,则将忽略它们。

        参数
        inData - 表示流元数据的 IIOMetadata对象,用于初始化返回对象的状态。
        param -一个 ImageWriteParam将被用于对图像,或编码 null
        结果
        IIOMetadata对象,如果插件未提供元数据编码功能, null
        异常
        IllegalArgumentException - 如果 inDatanull
      • convertImageMetadata

        IIOMetadata convertImageMetadata​(IIOMetadata inData,
                                         ImageTypeSpecifier imageType,
                                         ImageWriteParam param)
        返回一个IIOMetadata对象,该对象可用于编码,并可选择使用其文档接口或特定于将用于编码的writer插件的其他接口进行修改。

        可能会提供可选的ImageWriteParam以用于可能影响图像元数据结构的情况。

        如果提供的ImageWriteParam包含此ImageWriteParam器或转码器无法理解的可选设置值,则将忽略它们。

        参数
        inData - 表示图像元数据的 IIOMetadata对象,用于初始化返回对象的状态。
        imageType - ImageTypeSpecifier指示与元数据相关联的图像的布局和颜色信息。
        param -一个 ImageWriteParam将被用于对图像,或编码 null
        结果
        IIOMetadata对象,如果插件未提供元数据编码功能, null
        异常
        IllegalArgumentException - 如果 inDataimageType任何一个是 null