Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
TIFF_LONG = 4
TIFF_RATIONAL = 5
TIFF_SBYTE = 6
TIFF_UNDEFINED = 7
TIFF_SSHORT = 8
TIFF_SLONG = 9
TIFF_SRATIONAL = 10
TIFF_FLOAT = 11
TIFF_DOUBLE = 12
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):
"""
typedef struct {
ttag_t field_tag; /* field's tag */
TIFF_DOUBLE = 12
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):
"""
typedef struct {
ttag_t field_tag; /* field's tag */
short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */
short field_writecount; /* write count/TIFF_VARIABLE */
TIFFDataType field_type; /* type of associated data */
unsigned short field_bit; /* bit in fieldsset bit vector */
unsigned char field_oktochange; /* if true, can change while writing */
unsigned char field_passcount; /* if true, pass dir count on set */
char *field_name; /* ASCII name */
} TIFFFieldInfo;
TIFF_UNDEFINED = 7
TIFF_SSHORT = 8
TIFF_SLONG = 9
TIFF_SRATIONAL = 10
TIFF_FLOAT = 11
TIFF_DOUBLE = 12
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):
"""
typedef struct {
ttag_t field_tag; /* field's tag */
short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */
short field_writecount; /* write count/TIFF_VARIABLE */
TIFFDataType field_type; /* type of associated data */
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):
"""
typedef struct {
ttag_t field_tag; /* field's tag */
short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */
short field_writecount; /* write count/TIFF_VARIABLE */
TIFFDataType field_type; /* type of associated data */
unsigned short field_bit; /* bit in fieldsset bit vector */
unsigned char field_oktochange; /* if true, can change while writing */
unsigned char field_passcount; /* if true, pass dir count on set */
char *field_name; /* ASCII name */
} TIFFFieldInfo;
"""
TIFF_SRATIONAL = 10
TIFF_FLOAT = 11
TIFF_DOUBLE = 12
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):
"""
typedef struct {
ttag_t field_tag; /* field's tag */
short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */
short field_writecount; /* write count/TIFF_VARIABLE */
TIFFDataType field_type; /* type of associated data */
unsigned short field_bit; /* bit in fieldsset bit vector */
unsigned char field_oktochange; /* if true, can change while writing */
unsigned char field_passcount; /* if true, pass dir count on set */
TIFF_SBYTE = 6
TIFF_UNDEFINED = 7
TIFF_SSHORT = 8
TIFF_SLONG = 9
TIFF_SRATIONAL = 10
TIFF_FLOAT = 11
TIFF_DOUBLE = 12
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):
"""
typedef struct {
ttag_t field_tag; /* field's tag */
short field_readcount; /* read count/TIFF_VARIABLE/TIFF_SPP */
short field_writecount; /* write count/TIFF_VARIABLE */
TIFF_ASCII = 2
TIFF_SHORT = 3
TIFF_LONG = 4
TIFF_RATIONAL = 5
TIFF_SBYTE = 6
TIFF_UNDEFINED = 7
TIFF_SSHORT = 8
TIFF_SLONG = 9
TIFF_SRATIONAL = 10
TIFF_FLOAT = 11
TIFF_DOUBLE = 12
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):
"""
TIFFFieldInfo(NTD_MinGrayValue, 1, 1, TIFFDataType.TIFF_SLONG,
FIELD_CUSTOM, True, False, "MinGrayValue" ),
NTD_MaxGrayValue:
TIFFFieldInfo(NTD_MaxGrayValue, 1, 1, TIFFDataType.TIFF_SLONG,
FIELD_CUSTOM, True, False, "MaxGrayValue" ),
NTD_Gradient:
TIFFFieldInfo(NTD_Gradient, 1, 1, TIFFDataType.TIFF_FLOAT,
FIELD_CUSTOM, True, False, "Gradient" ),
NTD_AxisIntercept:
TIFFFieldInfo(NTD_AxisIntercept, 1, 1, TIFFDataType.TIFF_FLOAT,
FIELD_CUSTOM, True, False, "AxisIntercept" ),
NTD_ColorTable:
TIFFFieldInfo(NTD_ColorTable, -1, -1, TIFFDataType.TIFF_ASCII,
FIELD_CUSTOM, True, False, "ColorTable" ),
NTD_Description:
TIFFFieldInfo(NTD_Description, -1, -1, TIFFDataType.TIFF_ASCII,
FIELD_CUSTOM, True, False, "Description" ),
NTD_OverflightDirection:
TIFFFieldInfo(NTD_OverflightDirection, -1, -1, TIFFDataType.TIFF_ASCII,
FIELD_CUSTOM, True, False, "OverflightDirection" ),
NTD_GeoLatitude:
TIFFFieldInfo(NTD_GeoLatitude, 1, 1, TIFFDataType.TIFF_FLOAT,
FIELD_CUSTOM, True, False, "GeoLatitude" ),
NTD_GeoLongitude:
TIFFFieldInfo(NTD_GeoLongitude, 1, 1, TIFFDataType.TIFF_FLOAT,
FIELD_CUSTOM, True, False, "GeoLongitude" ),
NTD_Altitude:
TIFFFieldInfo(NTD_Altitude, 1, 1, TIFFDataType.TIFF_FLOAT,
FIELD_CUSTOM, True, False, "Altitude" ),
NTD_AOSAsimuth:
TIFFFieldInfo(NTD_AOSAsimuth, 1, 1, TIFFDataType.TIFF_FLOAT,
FIELD_CUSTOM, True, False, "AOSAsimuth" ),
tmp = a.GetField("LibtiffTestByte")
assert tmp==42,"LibtiffTestbyte was not read as 42"
tmp = a.GetField("LibtiffTestuint16")
assert tmp==42,"LibtiffTestuint16 was not read as 42"
tmp = a.GetField("LibtiffTestMultiuint32")
assert tmp==[1,2,3,4,5,6,7,8,9,10],"LibtiffTestMultiuint32 was not read as [1,2,3,4,5,6,7,8,9,10]"
tmp = a.GetField("LibtiffTeststr")
assert tmp=="FAKE","LibtiffTeststr was not read as 'FAKE'"
tmp = a.GetField("PRIMARYCHROMATICITIES")
assert tmp==[1.0,2.0,3.0,4.0,5.0,6.0],"PrimaryChromaticities was not read as [1.0,2.0,3.0,4.0,5.0,6.0]"
print "Tag Read: SUCCESS"
# Define a C structure that says how each tag should be used
test_tags = [
TIFFFieldInfo(40100, 1, 1, TIFFDataType.TIFF_BYTE, FIELD_CUSTOM, True, False, "LibtiffTestByte"),
TIFFFieldInfo(40103, 10, 10, TIFFDataType.TIFF_LONG, FIELD_CUSTOM, True, False, "LibtiffTestMultiuint32"),
TIFFFieldInfo(40102, 1, 1, TIFFDataType.TIFF_SHORT, FIELD_CUSTOM, True, False, "LibtiffTestuint16"),
TIFFFieldInfo(40101, -1, -1, TIFFDataType.TIFF_ASCII, FIELD_CUSTOM, True, False, "LibtiffTeststr")
]
# Add tags to the libtiff library
test_extender = add_tags(test_tags) # Keep pointer to extender object, no gc
_tag_write()
_tag_read()
TIFF_BYTE = 1
TIFF_ASCII = 2
TIFF_SHORT = 3
TIFF_LONG = 4
TIFF_RATIONAL = 5
TIFF_SBYTE = 6
TIFF_UNDEFINED = 7
TIFF_SSHORT = 8
TIFF_SLONG = 9
TIFF_SRATIONAL = 10
TIFF_FLOAT = 11
TIFF_DOUBLE = 12
TIFF_IFD = 13
ttype2ctype = {
TIFFDataType.TIFF_NOTYPE : None,
TIFFDataType.TIFF_BYTE : ctypes.c_ubyte,
TIFFDataType.TIFF_ASCII : ctypes.c_char_p,
TIFFDataType.TIFF_SHORT : ctypes.c_uint16,
TIFFDataType.TIFF_LONG : ctypes.c_uint32,
TIFFDataType.TIFF_RATIONAL : ctypes.c_double, # Should be unsigned
TIFFDataType.TIFF_SBYTE : ctypes.c_byte,
TIFFDataType.TIFF_UNDEFINED : ctypes.c_char,
TIFFDataType.TIFF_SSHORT : ctypes.c_int16,
TIFFDataType.TIFF_SLONG : ctypes.c_int32,
TIFFDataType.TIFF_SRATIONAL : ctypes.c_double,
TIFFDataType.TIFF_FLOAT : ctypes.c_float,
TIFFDataType.TIFF_DOUBLE : ctypes.c_double,
TIFFDataType.TIFF_IFD : ctypes.c_uint32
}
class TIFFFieldInfo(ctypes.Structure):