Class TIFFDirectory
- All Implemented Interfaces:
- Cloneable
TIFFDirectory instance corresponds
 to an IFD and contains a set of TIFFFields each of which
 corresponds to an IFD Entry in the IFD.
 When reading, a TIFFDirectory may be created by passing
 the value returned by ImageReader.getImageMetadata() to createFromMetadata(). The TIFFFields in the directory may then
 be obtained using the accessor methods provided in this class.
When writing, an IIOMetadata object for use by one of the
 write() methods of ImageWriter may be
 created from a TIFFDirectory by getAsMetadata().
 The TIFFDirectory itself may be created by construction or
 from the IIOMetadata object returned by
 ImageWriter.getDefaultImageMetadata(). The TIFFFields in the
 directory may be set using the mutator methods provided in this class.
A TIFFDirectory is aware of the tag numbers in the
 group of TIFFTagSets associated with it. When
 a TIFFDirectory is created from a native image metadata
 object, these tag sets are derived from the tagSets attribute
 of the TIFFIFD node.
A TIFFDirectory might also have a parent TIFFTag.
 This will occur if the directory represents an IFD other than the root
 IFD of the image. The parent tag is the tag of the IFD Entry which is a
 pointer to the IFD represented by this TIFFDirectory. The
 TIFFTag.isIFDPointer() method of this parent TIFFTag
 must return true.  When a TIFFDirectory is
 created from a native image metadata object, the parent tag set is set
 from the parentTagName attribute of the corresponding
 TIFFIFD node. Note that a TIFFDirectory instance
 which has a non-null parent tag will be contained in the
 data field of a TIFFField instance which has a tag field
 equal to the contained directory's parent tag.
As an example consider an Exif image. The TIFFDirectory
 instance corresponding to the Exif IFD in the Exif stream would have parent
 tag TAG_EXIF_IFD_POINTER
 and would include ExifTIFFTagSet in its group of known tag sets.
 The TIFFDirectory corresponding to this Exif IFD will be
 contained in the data field of a TIFFField which will in turn
 be contained in the TIFFDirectory corresponding to the primary
 IFD of the Exif image which will itself have a null-valued
 parent tag.
Note that this implementation is not synchronized. If multiple
 threads use a TIFFDirectory instance concurrently, and at
 least one of the threads modifies the directory, for example, by adding
 or removing TIFFFields or TIFFTagSets, it
 must be synchronized externally.
- Since:
- 9
- See Also:
- 
Constructor SummaryConstructorsConstructorDescriptionTIFFDirectory(TIFFTagSet[] tagSets, TIFFTag parentTag) Constructs aTIFFDirectorywhich is aware of a given group ofTIFFTagSets.
- 
Method SummaryModifier and TypeMethodDescriptionvoidaddTagSet(TIFFTagSet tagSet) Adds an element to the group ofTIFFTagSets of which this directory is aware.voidAdds a TIFF field to the directory.clone()Clones the directory and all the fields contained therein.booleancontainsTIFFField(int tagNumber) Determines whether a TIFF field with the given tag number is contained in this directory.static TIFFDirectorycreateFromMetadata(IIOMetadata tiffImageMetadata) Creates aTIFFDirectoryinstance from the contents of an image metadata object.Converts the directory to a metadata object.intReturns the number ofTIFFFields in this directory.Returns the parentTIFFTagof this directory if one has been defined ornullotherwise.getTag(int tagNumber) Returns theTIFFTagwhich has tag number equal totagNumberornullif no such tag exists in theTIFFTagSets associated with this directory.Returns theTIFFTagSets of which this directory is aware.getTIFFField(int tagNumber) Retrieves a TIFF field from the directory.Retrieves all TIFF fields from the directory.voidremoveTagSet(TIFFTagSet tagSet) Removes an element from the group ofTIFFTagSets of which this directory is aware.voidremoveTIFFField(int tagNumber) Removes a TIFF field from the directory.voidRemoves all TIFF fields from the directory.
- 
Constructor Details- 
TIFFDirectoryConstructs aTIFFDirectorywhich is aware of a given group ofTIFFTagSets. An optional parentTIFFTagmay also be specified.- Parameters:
- tagSets- The- TIFFTagSetsassociated with this directory.
- parentTag- The parent- TIFFTagof this directory; may be- null.
- Throws:
- NullPointerException- if- tagSetsis- null.
 
 
- 
- 
Method Details- 
createFromMetadatapublic static TIFFDirectory createFromMetadata(IIOMetadata tiffImageMetadata) throws IIOInvalidTreeException Creates aTIFFDirectoryinstance from the contents of an image metadata object. The supplied object must support an image metadata format supported by the TIFFImageWriterplug-in. This will usually be either the TIFF native image metadata formatjavax_imageio_tiff_image_1.0or the Java Image I/O standard metadata formatjavax_imageio_1.0.- Parameters:
- tiffImageMetadata- A metadata object which supports a compatible image metadata format.
- Returns:
- A TIFFDirectorypopulated from the contents of the supplied metadata object.
- Throws:
- NullPointerException- if- tiffImageMetadatais- null.
- IllegalArgumentException- if- tiffImageMetadatadoes not support a compatible image metadata format.
- IIOInvalidTreeException- if the supplied metadata object cannot be parsed.
 
- 
getTagSetsReturns theTIFFTagSets of which this directory is aware.- Returns:
- The TIFFTagSets associated with thisTIFFDirectory.
 
- 
addTagSetAdds an element to the group ofTIFFTagSets of which this directory is aware.- Parameters:
- tagSet- The- TIFFTagSetto add.
- Throws:
- NullPointerException- if- tagSetis- null.
 
- 
removeTagSetRemoves an element from the group ofTIFFTagSets of which this directory is aware.- Parameters:
- tagSet- The- TIFFTagSetto remove.
- Throws:
- NullPointerException- if- tagSetis- null.
 
- 
getParentTag
- 
getTagReturns theTIFFTagwhich has tag number equal totagNumberornullif no such tag exists in theTIFFTagSets associated with this directory.- Parameters:
- tagNumber- The tag number of interest.
- Returns:
- The corresponding TIFFTagornull.
 
- 
getNumTIFFFieldspublic int getNumTIFFFields()Returns the number ofTIFFFields in this directory.- Returns:
- The number of TIFFFields in thisTIFFDirectory.
 
- 
containsTIFFFieldpublic boolean containsTIFFField(int tagNumber) Determines whether a TIFF field with the given tag number is contained in this directory.- Parameters:
- tagNumber- The tag number.
- Returns:
- Whether a TIFFTagwith tag number equal totagNumberis present in thisTIFFDirectory.
 
- 
addTIFFFieldAdds a TIFF field to the directory.- Parameters:
- f- The field to add.
- Throws:
- NullPointerException- if- fis- null.
 
- 
getTIFFFieldRetrieves a TIFF field from the directory.- Parameters:
- tagNumber- The tag number of the tag associated with the field.
- Returns:
- A TIFFFieldwith the requested tag number ofnullif no such field is present.
 
- 
removeTIFFFieldpublic void removeTIFFField(int tagNumber) Removes a TIFF field from the directory.- Parameters:
- tagNumber- The tag number of the tag associated with the field.
 
- 
getTIFFFieldsRetrieves all TIFF fields from the directory.- Returns:
- An array of all TIFF fields in order of numerically increasing tag number.
 
- 
removeTIFFFieldspublic void removeTIFFFields()Removes all TIFF fields from the directory.
- 
getAsMetadataConverts the directory to a metadata object.- Returns:
- A metadata instance initialized from the contents of this
 TIFFDirectory.
 
- 
cloneClones the directory and all the fields contained therein.- Overrides:
- clonein class- Object
- Returns:
- A clone of this TIFFDirectory.
- Throws:
- CloneNotSupportedException- if the instance cannot be cloned.
- See Also:
 
 
-