Class XTIFFField
- java.lang.Object
-
- org.libtiff.jai.codec.XTIFFField
-
- All Implemented Interfaces:
Serializable,Comparable
public class XTIFFField extends Object implements Serializable, Comparable
XTIFFField is class representing a field in a TIFF 6.0 Image File Directory. Unlike the JAITIFFFieldclass, this one is serializable, assuming the underlying data object is. Revision: Fix getAsLongs to support arrays of Short.- See Also:
TIFFDescriptor,XTIFFDirectory, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static intTIFF_ASCIIFlag for null-terminated ASCII strings.static intTIFF_BYTEFlag for 8 bit unsigned integers.static intTIFF_DOUBLEFlag for 64 bit IEEE doubles.static intTIFF_FLOATFlag for 32 bit IEEE floats.static intTIFF_LONGFlag for 32 bit unsigned integers.static intTIFF_RATIONALFlag for pairs of 32 bit unsigned integers.static intTIFF_SBYTEFlag for 8 bit signed integers.static intTIFF_SHORTFlag for 16 bit unsigned integers.static intTIFF_SLONGFlag for 32 bit signed integers.static intTIFF_SRATIONALFlag for pairs of 32 bit signed integers.static intTIFF_SSHORTFlag for 16 bit signed integers.static intTIFF_UNDEFINEDFlag for 8 bit uninterpreted bytes.
-
Constructor Summary
Constructors Constructor Description XTIFFField()The default constructor.XTIFFField(int tag, int type, int count, Object data)Constructs a XTIFFField with arbitrary data.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intcompareTo(Object o)For sorting, implement Comparablebyte[]getAsBytes()Returns the data as an uninterpreted array of bytes.char[]getAsChars()Returns TIFF_SHORT data as an array of chars (unsigned 16-bit integers).doublegetAsDouble(int index)Returns data in any numerical format as a float.double[]getAsDoubles()Returns TIFF_DOUBLE data as an array of doubles.floatgetAsFloat(int index)Returns data in any numerical format as a float.float[]getAsFloats()Returns TIFF_FLOAT data as an array of floats.intgetAsInt(int index)Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, or TIFF_SLONG format as an int.int[]getAsInts()Returns TIFF_SLONG data as an array of ints (signed 32-bit integers).longgetAsLong(int index)Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG, or TIFF_LONG format as a long.long[]getAsLongs()Returns TIFF_LONG data as an array of longs (signed 64-bit integers).long[]getAsRational(int index)Returns a TIFF_RATIONAL data item as a two-element array of ints.long[][]getAsRationals()Returns TIFF_RATIONAL data as an array of 2-element arrays of longs.short[]getAsShorts()Returns TIFF_SSHORT data as an array of shorts (signed 16-bit integers).int[]getAsSRational(int index)Returns a TIFF_SRATIONAL data item as a two-element array of ints.int[][]getAsSRationals()Returns TIFF_SRATIONAL data as an array of 2-element arrays of ints.StringgetAsString(int index)Returns a TIFF_ASCII data item as a String.String[]getAsStrings()Returns the data as an array of Strings.intgetCount()Returns the number of elements in the IFD.intgetTag()Returns the tag number, between 0 and 65535.intgetType()Returns the type of the data stored in the IFD.
-
-
-
Field Detail
-
TIFF_BYTE
public static final int TIFF_BYTE
Flag for 8 bit unsigned integers.- See Also:
- Constant Field Values
-
TIFF_ASCII
public static final int TIFF_ASCII
Flag for null-terminated ASCII strings.- See Also:
- Constant Field Values
-
TIFF_SHORT
public static final int TIFF_SHORT
Flag for 16 bit unsigned integers.- See Also:
- Constant Field Values
-
TIFF_LONG
public static final int TIFF_LONG
Flag for 32 bit unsigned integers.- See Also:
- Constant Field Values
-
TIFF_RATIONAL
public static final int TIFF_RATIONAL
Flag for pairs of 32 bit unsigned integers.- See Also:
- Constant Field Values
-
TIFF_SBYTE
public static final int TIFF_SBYTE
Flag for 8 bit signed integers.- See Also:
- Constant Field Values
-
TIFF_UNDEFINED
public static final int TIFF_UNDEFINED
Flag for 8 bit uninterpreted bytes.- See Also:
- Constant Field Values
-
TIFF_SSHORT
public static final int TIFF_SSHORT
Flag for 16 bit signed integers.- See Also:
- Constant Field Values
-
TIFF_SLONG
public static final int TIFF_SLONG
Flag for 32 bit signed integers.- See Also:
- Constant Field Values
-
TIFF_SRATIONAL
public static final int TIFF_SRATIONAL
Flag for pairs of 32 bit signed integers.- See Also:
- Constant Field Values
-
TIFF_FLOAT
public static final int TIFF_FLOAT
Flag for 32 bit IEEE floats.- See Also:
- Constant Field Values
-
TIFF_DOUBLE
public static final int TIFF_DOUBLE
Flag for 64 bit IEEE doubles.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
XTIFFField
public XTIFFField()
The default constructor. Made public for Serialization
-
XTIFFField
public XTIFFField(int tag, int type, int count, Object data)Constructs a XTIFFField with arbitrary data. The data parameter must be an array of a Java type appropriate for the type of the TIFF field. Since there is no available 32-bit unsigned datatype, long is used. The mapping between types is as follows:TIFF type Java type TIFF_BYTE byte TIFF_ASCII String TIFF_SHORT char TIFF_LONG long TIFF_RATIONAL long[2] TIFF_SBYTE byte TIFF_UNDEFINED byte TIFF_SSHORT short TIFF_SLONG int TIFF_SRATIONAL int[2] TIFF_FLOAT float TIFF_DOUBLE double
-
-
Method Detail
-
getTag
public int getTag()
Returns the tag number, between 0 and 65535.
-
getType
public int getType()
Returns the type of the data stored in the IFD. For a TIFF6.0 file, the value will equal one of the TIFF_ constants defined in this class. For future revisions of TIFF, higher values are possible.
-
getCount
public int getCount()
Returns the number of elements in the IFD. (Image File Directory)- See Also:
XTIFFDirectory
-
getAsBytes
public byte[] getAsBytes()
Returns the data as an uninterpreted array of bytes. The type of the field must be one of TIFF_BYTE, TIFF_SBYTE, or TIFF_UNDEFINED;For data in TIFF_BYTE format, the application must take care when promoting the data to longer integral types to avoid sign extension.
A ClassCastException will be thrown if the field is not of type TIFF_BYTE, TIFF_SBYTE, or TIFF_UNDEFINED.
-
getAsStrings
public String[] getAsStrings()
Returns the data as an array of Strings. The type of the field must be TIFF_ASCII.A ClassCastException will be thrown if the field is not of type TIFF_ASCII
-
getAsChars
public char[] getAsChars()
Returns TIFF_SHORT data as an array of chars (unsigned 16-bit integers).A ClassCastException will be thrown if the field is not of type TIFF_SHORT.
-
getAsShorts
public short[] getAsShorts()
Returns TIFF_SSHORT data as an array of shorts (signed 16-bit integers).A ClassCastException will be thrown if the field is not of type TIFF_SSHORT.
-
getAsInts
public int[] getAsInts()
Returns TIFF_SLONG data as an array of ints (signed 32-bit integers).A ClassCastException will be thrown if the field is not of type TIFF_SLONG.
-
getAsLongs
public long[] getAsLongs()
Returns TIFF_LONG data as an array of longs (signed 64-bit integers).A ClassCastException will be thrown if the field is not an array of type TIFF_LONG or TIFF_SHORT.
-
getAsFloats
public float[] getAsFloats()
Returns TIFF_FLOAT data as an array of floats.A ClassCastException will be thrown if the field is not of type TIFF_FLOAT.
-
getAsDoubles
public double[] getAsDoubles()
Returns TIFF_DOUBLE data as an array of doubles.A ClassCastException will be thrown if the field is not of type TIFF_DOUBLE.
-
getAsSRationals
public int[][] getAsSRationals()
Returns TIFF_SRATIONAL data as an array of 2-element arrays of ints.A ClassCastException will be thrown if the field is not of type TIFF_SRATIONAL.
-
getAsRationals
public long[][] getAsRationals()
Returns TIFF_RATIONAL data as an array of 2-element arrays of longs.A ClassCastException will be thrown if the field is not of type TIFF_RATTIONAL.
-
getAsInt
public int getAsInt(int index)
Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, or TIFF_SLONG format as an int.TIFF_BYTE and TIFF_UNDEFINED data are treated as unsigned; that is, no sign extension will take place and the returned value will be in the range [0, 255]. TIFF_SBYTE data will be returned in the range [-128, 127].
A ClassCastException will be thrown if the field is not of type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, or TIFF_SLONG.
-
getAsLong
public long getAsLong(int index)
Returns data in TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG, or TIFF_LONG format as a long.TIFF_BYTE and TIFF_UNDEFINED data are treated as unsigned; that is, no sign extension will take place and the returned value will be in the range [0, 255]. TIFF_SBYTE data will be returned in the range [-128, 127].
A ClassCastException will be thrown if the field is not of type TIFF_BYTE, TIFF_SBYTE, TIFF_UNDEFINED, TIFF_SHORT, TIFF_SSHORT, TIFF_SLONG, or TIFF_LONG.
-
getAsFloat
public float getAsFloat(int index)
Returns data in any numerical format as a float. Data in TIFF_SRATIONAL or TIFF_RATIONAL format are evaluated by dividing the numerator into the denominator using double-precision arithmetic and then truncating to single precision. Data in TIFF_SLONG, TIFF_LONG, or TIFF_DOUBLE format may suffer from truncation.A ClassCastException will be thrown if the field is of type TIFF_UNDEFINED or TIFF_ASCII.
-
getAsDouble
public double getAsDouble(int index)
Returns data in any numerical format as a float. Data in TIFF_SRATIONAL or TIFF_RATIONAL format are evaluated by dividing the numerator into the denominator using double-precision arithmetic.A ClassCastException will be thrown if the field is of type TIFF_UNDEFINED or TIFF_ASCII.
-
getAsString
public String getAsString(int index)
Returns a TIFF_ASCII data item as a String.A ClassCastException will be thrown if the field is not of type TIFF_ASCII.
-
getAsSRational
public int[] getAsSRational(int index)
Returns a TIFF_SRATIONAL data item as a two-element array of ints.A ClassCastException will be thrown if the field is not of type TIFF_SRATIONAL.
-
getAsRational
public long[] getAsRational(int index)
Returns a TIFF_RATIONAL data item as a two-element array of ints.A ClassCastException will be thrown if the field is not of type TIFF_RATIONAL.
-
compareTo
public int compareTo(Object o) throws ClassCastException
For sorting, implement Comparable- Specified by:
compareToin interfaceComparable- Throws:
ClassCastException
-
-