Module  java.desktop
软件包  javax.imageio

Interface ImageTranscoder

  • 所有已知实现类:
    ImageWriter


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

    任何图像都可以通过执行读取操作,然后进行写入操作,进行代码转换(写入与原始存储的格式不同的格式)。 但是,由于格式差异,在此过程中可能会发生数据丢失。

    一般来说,当可以创建特定于格式的元数据对象以便尽可能多地封装关于图像及其关联的元数据的信息时,通过用于执行编码的特定ImageWriter可以理解的方式,将获得最佳结果。

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

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

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

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

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

    • 方法详细信息

      • 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