- 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
は、このクラスで提供されているアクセサ・メソッドを使用して取得できます。書き込み時には、
ImageWriter
のwrite()
メソッドの1つで使用するIIOMetadata
オブジェクトをgetAsMetadata()
のTIFFDirectory
から作成することができます。TIFFDirectory
自体は、構築によって、またはImageWriter.getDefaultImageMetadata()
によって返されるIIOMetadata
オブジェクトから作成されます。 ディレクトリ内のTIFFField
は、このクラスで提供されるmutatorメソッドを使用して設定できます。TIFFDirectory
は、関連するTIFFTagSet
のグループ内のタグ番号を認識しています。TIFFDirectory
がネイティブ・イメージ・メタデータ・オブジェクトから作成されると、これらのタグ・セットはTIFFIFD
ノードのtagSets
属性から派生します。TIFFDirectory
には、親TIFFTag
も含まれている可能性があります。 これは、ディレクトリがイメージのルートIFD以外のIFDを表す場合に発生します。 親タグは、このTIFFDirectory
によって表されるIFDへのポインタであるIFDエントリのタグです。 この親TIFFTag
のTIFFTag.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(TIFFTagSet[] tagSets, TIFFTag parentTag)
指定されたグループのTIFFTagSet
を認識しているTIFFDirectory
を構築します。
-
メソッドのサマリー
修飾子と型 メソッド 説明 void
addTagSet(TIFFTagSet tagSet)
このディレクトリが認識しているTIFFTagSet
のグループに要素を追加します。void
addTIFFField(TIFFField f)
ディレクトリにTIFFフィールドを追加します。TIFFDirectory
clone()
ディレクトリとそこに含まれるすべてのフィールドをクローンします。boolean
containsTIFFField(int tagNumber)
指定されたタグ番号を持つTIFFフィールドがこのディレクトリに含まれているかどうかを判定します。static TIFFDirectory
createFromMetadata(IIOMetadata tiffImageMetadata)
イメージ・メタデータ・オブジェクトの内容からTIFFDirectory
インスタンスを作成します。IIOMetadata
getAsMetadata()
ディレクトリをメタデータ・オブジェクトに変換します。int
getNumTIFFFields()
このディレクトリ内のTIFFField
の数を返します。TIFFTag
getParentTag()
このディレクトリの親TIFFTag
が定義されている場合はそれを返します。それ以外の場合はnull
を返します。TIFFTag
getTag(int tagNumber)
このディレクトリに関連付けられたTIFFTagSet
にそのようなタグが存在しない場合は、tagNumber
またはnull
に等しいタグ番号を持つTIFFTag
を返します。TIFFTagSet[]
getTagSets()
このディレクトリが認識しているTIFFTagSet
を返します。TIFFField
getTIFFField(int tagNumber)
ディレクトリからTIFFフィールドを取得します。TIFFField[]
getTIFFFields()
ディレクトリからすべてのTIFFフィールドを取得します。void
removeTagSet(TIFFTagSet tagSet)
このディレクトリが認識しているTIFFTagSet
のグループから要素を削除します。void
removeTIFFField(int tagNumber)
ディレクトリからTIFFフィールドを削除します。void
removeTIFFFields()
ディレクトリからすべてのTIFFフィールドを削除します。
-
-
-
コンストラクタの詳細
-
TIFFDirectory
public TIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag)
指定されたグループのTIFFTagSet
を認識しているTIFFDirectory
を構築します。 オプションの親TIFFTag
も指定できます。- パラメータ:
tagSets
- このディレクトリに関連付けられたTIFFTagSets
。parentTag
- このディレクトリの親TIFFTag
。null
です。- 例外:
NullPointerException
-tagSets
がnull
の場合。
-
-
メソッドの詳細
-
createFromMetadata
public static TIFFDirectory createFromMetadata(IIOMetadata tiffImageMetadata) throws IIOInvalidTreeException
イメージ・メタデータ・オブジェクトの内容からTIFFDirectory
インスタンスを作成します。 提供されるオブジェクトは、TIFFImageWriter
プラグインでサポートされているイメージ・メタデータ形式をサポートしている必要があります。 これは、通常、TIFFネイティブ・イメージ・メタデータ形式javax_imageio_tiff_image_1.0
またはJava Image I/O標準メタデータ形式javax_imageio_1.0
のいずれかになります。- パラメータ:
tiffImageMetadata
- 互換性のあるイメージ・メタデータ形式をサポートするメタデータ・オブジェクト。- 戻り値:
- 指定されたメタデータ・オブジェクトの内容から作成された
TIFFDirectory
。 - 例外:
NullPointerException
-tiffImageMetadata
がnull
の場合。IllegalArgumentException
-tiffImageMetadata
が互換性のあるイメージ・メタデータ形式をサポートしていない場合。IIOInvalidTreeException
- 指定されたメタデータ・オブジェクトを解析できない場合。
-
getTagSets
public TIFFTagSet[] getTagSets()
このディレクトリが認識しているTIFFTagSet
を返します。- 戻り値:
- この
TIFFDirectory
に関連付けられたTIFFTagSet
。
-
addTagSet
public void addTagSet(TIFFTagSet tagSet)
このディレクトリが認識しているTIFFTagSet
のグループに要素を追加します。- パラメータ:
tagSet
- 追加するTIFFTagSet
。- 例外:
NullPointerException
-tagSet
がnull
の場合。
-
removeTagSet
public void removeTagSet(TIFFTagSet tagSet)
このディレクトリが認識しているTIFFTagSet
のグループから要素を削除します。- パラメータ:
tagSet
- 削除するTIFFTagSet
。- 例外:
NullPointerException
-tagSet
がnull
の場合。
-
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
-f
がnull
の場合。
-
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
public TIFFDirectory clone() throws CloneNotSupportedException
ディレクトリとそこに含まれるすべてのフィールドをクローンします。- オーバーライド:
clone
、クラス:Object
- 戻り値:
- この
TIFFDirectory
のクローン。 - 例外:
CloneNotSupportedException
- インスタンスをクローン化できない場合。- 関連項目:
Cloneable
-
-