模块  java.desktop

Class TIFFDirectory

  • 实现的所有接口
    Cloneable

    public class TIFFDirectory
    extends Object
    implements Cloneable
    简化与TIFF本机图像元数据交互的便捷类。 TIFF图像元数据树表示来自TIFF 6.0流的图像文件目录(IFD)。 IFD由许多IFD条目组成,每个条目将识别标签号与兼容值相关联。 TIFFDirectory实例对应于IFD并包含一组TIFFField每个对应于IFD中的IFD条目。

    读取时,可以通过将ImageReader.getImageMetadata()返回的值传递给TIFFDirectory来创建TIFFDirectory 然后可以使用此类中提供的访问器方法获取目录中的TIFFField

    在写入时,可以从TIFFDirectorygetAsMetadata()创建4770608987901 4770609994331write()方法之一使用的IIOMetadata对象。 TIFFDirectory本身可以通过构造或IIOMetadata返回的IIOMetadata对象创建 可以使用此类中提供的mutator方法设置目录中的TIFFField

    A TIFFDirectory知道与之关联的TIFFTagSet组中的标签号。 从本机图像元数据对象创建TIFFDirectory ,这些标记集派生自TIFFIFD节点的tagSets属性。

    A TIFFDirectory也可能拥有父级TIFFTag 如果目录表示除图像的根IFD之外的IFD,则会发生这种情况。 父标记是IFD条目的标记,它是指向由TIFFDirectory表示的IFD的指针。 此父级TIFFTagTIFFTag.isIFDPointer()方法必须返回true 从本机映像元数据对象创建TIFFDirectory ,将从相应TIFFIFD节点的parentTagName属性设置父标记集。 请注意,具有非null父标记的TIFFDirectory实例将包含在TIFFField实例的数据字段中,该实例的标记字段等于包含的目录的父标记。

    作为示例考虑Exif图像。 对应于Exif流中的Exif IFD的TIFFDirectory实例将具有父标签TAG_EXIF_IFD_POINTER并且在其已知标签集的组中将包括ExifTIFFTagSet 对应于该Exif IFD的TIFFDirectory将包含在TIFFField的数据字段中,该数据字段又包含在TIFFDirectory中,该对应于Exif图像的主IFD,其本身具有null值的父标记。

    请注意,此实现不同步。 如果多个线程同时使用TIFFDirectory实例,并且至少有一个线程修改了目录,例如,通过添加或删除TIFFFieldTIFFTagSet ,则必须在外部进行同步。

    从以下版本开始:
    9
    另请参见:
    IIOMetadataTIFFFieldTIFFTagTIFFTagSet
    • 构造方法详细信息

      • TIFFDirectory

        public TIFFDirectory​(TIFFTagSet[] tagSets,
                             TIFFTag parentTag)
        构造一个TIFFDirectory ,它知道给定的一组TIFFTagSet 还可以指定可选父级TIFFTag
        参数
        tagSets - 与此目录关联的 TIFFTagSets
        parentTag - 此目录的父级TIFFTag ; 可能是null
        异常
        NullPointerException - 如果 tagSetsnull
    • 方法详细信息

      • createFromMetadata

        public static TIFFDirectory createFromMetadata​(IIOMetadata tiffImageMetadata)
                                                throws IIOInvalidTreeException
        从图像元数据对象的内容创建TIFFDirectory实例。 提供的对象必须支持TIFF ImageWriter插件支持的图像元数据格式。 这通常是TIFF本机图像元数据格式javax_imageio_tiff_image_1.0或Java Image I / O标准元数据格式javax_imageio_1.0
        参数
        tiffImageMetadata - 支持兼容图像元数据格式的元数据对象。
        结果
        从提供的元数据对象的内容填充 TIFFDirectory
        异常
        NullPointerException - 如果 tiffImageMetadatanull
        IllegalArgumentException - 如果 tiffImageMetadata不支持兼容的图像元数据格式。
        IIOInvalidTreeException - 如果无法解析提供的元数据对象。
      • getParentTag

        public TIFFTag getParentTag()
        如果已定义此目录,则返回此目录的父级TIFFTag ,否则返回null
        结果
        TIFFDiectorynull的父 TIFFTag null
      • getTag

        public TIFFTag getTag​(int tagNumber)
        返回TIFFTag其中有等于标签编号tagNumbernull如果不存在这样的标签TIFFTagSet这个目录相关秒。
        参数
        tagNumber - 感兴趣的标签号。
        结果
        对应的 TIFFTagnull
      • getNumTIFFFields

        public int getNumTIFFFields()
        返回此目录中TIFFField的数量。
        结果
        TIFFFieldTIFFDirectory
      • containsTIFFField

        public boolean containsTIFFField​(int tagNumber)
        确定此目录中是否包含具有给定标记号的TIFF字段。
        参数
        tagNumber - 标签号。
        结果
        无论是TIFFTag等于标签号tagNumber是存在于本TIFFDirectory
      • addTIFFField

        public void addTIFFField​(TIFFField f)
        向目录添加TIFF字段。
        参数
        f - 要添加的字段。
        异常
        NullPointerException - 如果 fnull
      • getTIFFField

        public TIFFField getTIFFField​(int tagNumber)
        从目录中检索TIFF字段。
        参数
        tagNumber - 与字段关联的标记的标记号。
        结果
        TIFFField ,如果没有这样的字段,请求的标签号为 null
      • removeTIFFField

        public void removeTIFFField​(int tagNumber)
        从目录中删除TIFF字段。
        参数
        tagNumber - 与字段关联的标记的标记号。
      • getTIFFFields

        public TIFFField[] getTIFFFields()
        从目录中检索所有TIFF字段。
        结果
        所有TIFF字段的数组按数字增加标记号的顺序。
      • removeTIFFFields

        public void removeTIFFFields()
        从目录中删除所有TIFF字段。
      • getAsMetadata

        public IIOMetadata getAsMetadata()
        将目录转换为元数据对象。
        结果
        从此 TIFFDirectory的内容初始化的元数据实例。