モジュール java.desktop

クラスTIFFDirectory

  • すべての実装されたインタフェース:
    Cloneable

    public class TIFFDirectory
    extends Object
    implements Cloneable
    TIFFネイティブ・イメージ・メタデータとの対話を簡素化するための簡易クラス。 TIFFイメージ・メタデータ・ツリーは、TIFF 6.0ストリームからのイメージ・ファイル・ディレクトリ(IFD)を表します。 IFDは、識別タグ番号を互換性のある値に関連付ける多数のIFDエントリで構成されます。 TIFFDirectoryインスタンスはIFDに対応し、TIFFFieldのセットを含み、それぞれがIFDのIFDエントリに対応します。

    読取り時に、ImageReader.getImageMetadata()から戻された値をcreateFromMetadata()に渡すことによって、TIFFDirectoryを作成できます。 ディレクトリ内のTIFFFieldは、このクラスで提供されるアクセッサ・メソッドを使用して取得できます。

    書込み時に、ImageWriterwrite()メソッドのいずれかによって使用されるIIOMetadataオブジェクトは、getAsMetadata()によってTIFFDirectoryから作成できます。 TIFFDirectory自体は、構築によって、またはImageWriter.getDefaultImageMetadata()によって返されるIIOMetadataオブジェクトから作成できます。 ディレクトリ内のTIFFFieldは、このクラスで提供されるmutatorメソッドを使用して設定できます。

    TIFFDirectoryは、関連付けられたTIFFTagSetのグループ内のタグ番号を認識します。 ネイティブ・イメージ・メタデータ・オブジェクトからTIFFDirectoryが作成されると、これらのタグ・セットはTIFFIFDノードのtagSets属性から導出されます。

    TIFFDirectoryには、親TIFFTagも含めることができます。 これは、ディレクトリがイメージのルートIFD以外のIFDを表す場合に発生します。 親タグは、このTIFFDirectoryによって表されるIFDへのポインタであるIFDエントリのタグです。 この親TIFFTagTIFFTag.isIFDPointer()メソッドは、trueを返す必要があります。 ネイティブ・イメージ・メタデータ・オブジェクトからTIFFDirectoryが作成されると、対応するTIFFIFDノードのparentTagName属性から親タグ・セットが設定されます。 null以外の親タグを持つTIFFDirectoryインスタンスは、含まれているディレクトリの親タグと等しいタグ・フィールドを持つTIFFFieldインスタンスのデータ・フィールドに含まれます。

    例として、Exifイメージを考えてみます。 ExifストリームのExif IFDに対応するTIFFDirectoryインスタンスは、親タグTAG_EXIF_IFD_POINTERを持ち、既知のタグ・セットのグループにExifTIFFTagSetを含めます。 このExif IFDに対応するTIFFDirectoryは、TIFFFieldのデータ・フィールドに含まれます。このデータ・フィールドは、ExifイメージのプライマリIFDに対応するTIFFDirectoryに含まれます。Exifイメージ自体には、null値の親タグがあります。

    この実装はsynchronizedされません。 複数のスレッドがTIFFDirectoryインスタンスを同時に使用し、少なくとも1つのスレッドがディレクトリを変更する場合(たとえば、TIFFFieldまたはTIFFTagSetを追加または削除した場合)、外部で同期する必要があります

    導入されたバージョン:
    9
    関連項目:
    IIOMetadata, TIFFField, TIFFTag, TIFFTagSet
    • コンストラクタの詳細

      • TIFFDirectory

        public TIFFDirectory​(TIFFTagSet[] tagSets,
                             TIFFTag parentTag)
        TIFFTagSetの特定のグループを認識するTIFFDirectoryを構築します。 オプションの親TIFFTagも指定できます。
        パラメータ:
        tagSets - このディレクトリに関連付けられたTIFFTagSets
        parentTag - このディレクトリの親TIFFTagnullの場合もあります。
        例外:
        NullPointerException - tagSetsnullの場合。
    • メソッドの詳細

      • createFromMetadata

        public static TIFFDirectory createFromMetadata​(IIOMetadata tiffImageMetadata)
                                                throws IIOInvalidTreeException
        イメージ・メタデータ・オブジェクトのコンテンツからTIFFDirectoryインスタンスを作成します。 指定されたオブジェクトは、TIFF ImageWriterプラグインでサポートされているイメージ・メタデータ形式をサポートしている必要があります。 これは、通常、TIFFネイティブ・イメージ・メタデータ形式javax_imageio_tiff_image_1.0またはJavaイメージI/O標準メタデータ形式javax_imageio_1.0のいずれかになります。
        パラメータ:
        tiffImageMetadata - 互換性のあるイメージ・メタデータ形式をサポートするメタデータ・オブジェクト。
        戻り値:
        指定されたメタデータ・オブジェクトのコンテンツから移入されたTIFFDirectory
        例外:
        NullPointerException - tiffImageMetadatanullの場合。
        IllegalArgumentException - tiffImageMetadataが互換性のあるイメージ・メタデータ形式をサポートしない場合。
        IIOInvalidTreeException - 指定されたメタデータ・オブジェクトを解析できない場合。
      • getTagSets

        public TIFFTagSet[] getTagSets()
        このディレクトリが認識しているTIFFTagSetを返します。
        戻り値:
        このTIFFDirectoryに関連付けられているTIFFTagSet
      • addTagSet

        public void addTagSet​(TIFFTagSet tagSet)
        このディレクトリが認識している TIFFTagSetのグループに要素を追加します。
        パラメータ:
        tagSet - 追加するTIFFTagSet
        例外:
        NullPointerException - tagSetnullの場合。
      • removeTagSet

        public void removeTagSet​(TIFFTagSet tagSet)
        このディレクトリが認識している TIFFTagSetのグループから要素を削除します。
        パラメータ:
        tagSet - 削除するTIFFTagSet
        例外:
        NullPointerException - tagSetnullの場合。
      • getParentTag

        public TIFFTag getParentTag()
        このディレクトリの親TIFFTag(定義されている場合)またはnull(定義されていない場合)を返します。
        戻り値:
        このTIFFDiectoryまたはnullの親TIFFTag
      • getTag

        public TIFFTag getTag​(int tagNumber)
        このディレクトリに関連付けられたTIFFTagSetにタグが存在しない場合は、tagNumberまたはnullと等しいタグ番号を持つTIFFTagを返します。
        パラメータ:
        tagNumber - 対象のタグ番号。
        戻り値:
        対応するTIFFTagまたはnull
      • getNumTIFFFields

        public int getNumTIFFFields()
        このディレクトリ内のTIFFFieldの数を返します。
        戻り値:
        このTIFFDirectory内のTIFFFieldの数。
      • containsTIFFField

        public boolean containsTIFFField​(int tagNumber)
        指定されたタグ番号のTIFFフィールドがこのディレクトリに含まれているかどうかを決定します。
        パラメータ:
        tagNumber - タグ番号。
        戻り値:
        タグ番号がtagNumberTIFFTagがこのTIFFDirectoryに存在するかどうか。
      • addTIFFField

        public void addTIFFField​(TIFFField f)
        ディレクトリにTIFFフィールドを追加します。
        パラメータ:
        f - 追加するフィールド。
        例外:
        NullPointerException - fnullの場合。
      • getTIFFField

        public TIFFField getTIFFField​(int tagNumber)
        ディレクトリからTIFFフィールドを取得します。
        パラメータ:
        tagNumber - フィールドに関連付けられたタグのタグ番号。
        戻り値:
        そのようなフィールドが存在しない場合は、リクエストされたタグ番号がnullTIFFField
      • removeTIFFField

        public void removeTIFFField​(int tagNumber)
        ディレクトリからTIFFフィールドを削除します。
        パラメータ:
        tagNumber - フィールドに関連付けられたタグのタグ番号。
      • getTIFFFields

        public TIFFField[] getTIFFFields()
        ディレクトリからすべてのTIFFフィールドを取得します。
        戻り値:
        数値的に増加するタグ番号順のすべてのTIFFフィールドの配列。
      • removeTIFFFields

        public void removeTIFFFields()
        ディレクトリからすべてのTIFFフィールドを削除します。
      • getAsMetadata

        public IIOMetadata getAsMetadata()
        ディレクトリをメタデータ・オブジェクトに変換します。
        戻り値:
        このTIFFDirectoryの内容から初期化されるメタデータ・インスタンス。