モジュール java.desktop

クラスTIFFDirectory

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


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

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

    書き込み時には、ImageWriterwrite()メソッドの1つで使用する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のデータ・フィールドに含まれ、これは、それ自体、nullで評価された親タグを有するExifイメージのプライマリIFDに対応するTIFFDirectoryに含まれる。

    この実装はsynchronizedされません。 複数のスレッドが同時にTIFFDirectoryインスタンスを使用し、少なくとも1つのスレッドがディレクトリを変更する場合、たとえばTIFFField sまたは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 Image 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 - タグ番号。
        戻り値:
        タグ番号がtagNumberに等しいTIFFTagがこのTIFFDirectoryに存在するかどうか。
      • addTIFFField

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

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

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

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

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

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