モジュール java.desktop

クラスTIFFDirectory

java.lang.Object
javax.imageio.plugins.tiff.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
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag)
    指定されたグループのTIFFTagSetを認識しているTIFFDirectoryを構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    このディレクトリが認識しているTIFFTagSetのグループに要素を追加します。
    void
    ディレクトリにTIFFフィールドを追加します。
    ディレクトリとそこに含まれるすべてのフィールドをクローンします。
    boolean
    containsTIFFField(int tagNumber)
    指定されたタグ番号を持つTIFFフィールドがこのディレクトリに含まれているかどうかを判定します。
    createFromMetadata(IIOMetadata tiffImageMetadata)
    イメージ・メタデータ・オブジェクトの内容からTIFFDirectoryインスタンスを作成します。
    ディレクトリをメタデータ・オブジェクトに変換します。
    int
    このディレクトリ内のTIFFFieldの数を返します。
    このディレクトリの親TIFFTagが定義されている場合はそれを返します。それ以外の場合はnullを返します。
    getTag(int tagNumber)
    このディレクトリに関連付けられたTIFFTagSetにそのようなタグが存在しない場合は、tagNumberまたはnullに等しいタグ番号を持つTIFFTagを返します。
    このディレクトリが認識しているTIFFTagSetを返します。
    getTIFFField(int tagNumber)
    ディレクトリからTIFFフィールドを取得します。
    ディレクトリからすべてのTIFFフィールドを取得します。
    void
    このディレクトリが認識しているTIFFTagSetのグループから要素を削除します。
    void
    removeTIFFField(int tagNumber)
    ディレクトリからTIFFフィールドを削除します。
    void
    ディレクトリからすべてのTIFFフィールドを削除します。

    クラス java.lang.Objectで宣言されたメソッド

    equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • 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の内容から初期化されたメタデータ・インスタンス。
    • clone

      ディレクトリとそこに含まれるすべてのフィールドをクローンします。
      オーバーライド:
      clone、クラス: Object
      戻り値:
      このTIFFDirectoryのクローン。
      例外:
      CloneNotSupportedException - インスタンスをクローン化できない場合。
      関連項目: