| OLD | NEW |
| 1 /* $Id: tif_dirinfo.c,v 1.117 2012-08-19 16:56:34 bfriesen Exp $ */ | 1 /* $Id: tif_dirinfo.c,v 1.121 2014-05-07 01:58:46 bfriesen Exp $ */ |
| 2 | 2 |
| 3 /* | 3 /* |
| 4 * Copyright (c) 1988-1997 Sam Leffler | 4 * Copyright (c) 1988-1997 Sam Leffler |
| 5 * Copyright (c) 1991-1997 Silicon Graphics, Inc. | 5 * Copyright (c) 1991-1997 Silicon Graphics, Inc. |
| 6 * | 6 * |
| 7 * Permission to use, copy, modify, distribute, and sell this software and | 7 * Permission to use, copy, modify, distribute, and sell this software and |
| 8 * its documentation for any purpose is hereby granted without fee, provided | 8 * its documentation for any purpose is hereby granted without fee, provided |
| 9 * that (i) the above copyright notices and this permission notice appear in | 9 * that (i) the above copyright notices and this permission notice appear in |
| 10 * all copies of the software and related documentation, and (ii) the names of | 10 * all copies of the software and related documentation, and (ii) the names of |
| 11 * Sam Leffler and Silicon Graphics may not be used in any advertising or | 11 * Sam Leffler and Silicon Graphics may not be used in any advertising or |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 { TIFFTAG_TILEDEPTH, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET
_UNDEFINED, FIELD_TILEDEPTH, 0, 0, "TileDepth", NULL }, | 121 { TIFFTAG_TILEDEPTH, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET
_UNDEFINED, FIELD_TILEDEPTH, 0, 0, "TileDepth", NULL }, |
| 122 /* end SGI tags */ | 122 /* end SGI tags */ |
| 123 /* begin Pixar tags */ | 123 /* begin Pixar tags */ |
| 124 { TIFFTAG_PIXAR_IMAGEFULLWIDTH, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ImageFullWidth", NULL }, | 124 { TIFFTAG_PIXAR_IMAGEFULLWIDTH, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ImageFullWidth", NULL }, |
| 125 { TIFFTAG_PIXAR_IMAGEFULLLENGTH, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ImageFullLength", NULL }, | 125 { TIFFTAG_PIXAR_IMAGEFULLLENGTH, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ImageFullLength", NULL }, |
| 126 { TIFFTAG_PIXAR_TEXTUREFORMAT, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "TextureFormat", NULL }, | 126 { TIFFTAG_PIXAR_TEXTUREFORMAT, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "TextureFormat", NULL }, |
| 127 { TIFFTAG_PIXAR_WRAPMODES, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIF
F_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "TextureWrapModes", NULL }, | 127 { TIFFTAG_PIXAR_WRAPMODES, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIF
F_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "TextureWrapModes", NULL }, |
| 128 { TIFFTAG_PIXAR_FOVCOT, 1, 1, TIFF_FLOAT, 0, TIFF_SETGET_FLOAT, TIFF_SET
GET_UNDEFINED, FIELD_CUSTOM, 1, 0, "FieldOfViewCotangent", NULL }, | 128 { TIFFTAG_PIXAR_FOVCOT, 1, 1, TIFF_FLOAT, 0, TIFF_SETGET_FLOAT, TIFF_SET
GET_UNDEFINED, FIELD_CUSTOM, 1, 0, "FieldOfViewCotangent", NULL }, |
| 129 { TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN, 16, 16, TIFF_FLOAT, 0, TIFF_SETGET
_C0_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "MatrixWorldToScreen", NUL
L }, | 129 { TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN, 16, 16, TIFF_FLOAT, 0, TIFF_SETGET
_C0_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "MatrixWorldToScreen", NUL
L }, |
| 130 { TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA, 16, 16, TIFF_FLOAT, 0, TIFF_SETGET
_C0_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "MatrixWorldToCamera", NUL
L }, | 130 { TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA, 16, 16, TIFF_FLOAT, 0, TIFF_SETGET
_C0_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "MatrixWorldToCamera", NUL
L }, |
| 131 { TIFFTAG_CFAREPEATPATTERNDIM, 2, 2, TIFF_SHORT, 0, TIFF_SETGET_C0_UINT1
6, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "CFARepeatPatter
nDim", NULL }, |
| 132 { TIFFTAG_CFAPATTERN, 4, 4, TIFF_BYTE, 0, TIFF_SETGET_C0_UINT8, TIFF
_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "CFAPattern" , NULL}, |
| 131 { TIFFTAG_COPYRIGHT, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIFF_SETG
ET_UNDEFINED, FIELD_CUSTOM, 1, 0, "Copyright", NULL }, | 133 { TIFFTAG_COPYRIGHT, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIFF_SETG
ET_UNDEFINED, FIELD_CUSTOM, 1, 0, "Copyright", NULL }, |
| 132 /* end Pixar tags */ | 134 /* end Pixar tags */ |
| 133 { TIFFTAG_RICHTIFFIPTC, -3, -3, TIFF_LONG, 0, TIFF_SETGET_C32_UINT32, TI
FF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "RichTIFFIPTC", NULL }, | 135 { TIFFTAG_RICHTIFFIPTC, -3, -3, TIFF_LONG, 0, TIFF_SETGET_C32_UINT32, TI
FF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "RichTIFFIPTC", NULL }, |
| 134 { TIFFTAG_PHOTOSHOP, -3, -3, TIFF_BYTE, 0, TIFF_SETGET_C32_UINT8, TIFF_S
ETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "Photoshop", NULL }, | 136 { TIFFTAG_PHOTOSHOP, -3, -3, TIFF_BYTE, 0, TIFF_SETGET_C32_UINT8, TIFF_S
ETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "Photoshop", NULL }, |
| 135 { TIFFTAG_EXIFIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_IFD8, TIFF_SETGET_UND
EFINED, FIELD_CUSTOM, 0, 0, "EXIFIFDOffset", &exifFieldArray }, | 137 { TIFFTAG_EXIFIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_IFD8, TIFF_SETGET_UND
EFINED, FIELD_CUSTOM, 0, 0, "EXIFIFDOffset", &exifFieldArray }, |
| 136 { TIFFTAG_ICCPROFILE, -3, -3, TIFF_UNDEFINED, 0, TIFF_SETGET_C32_UINT8,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "ICC Profile", NULL }, | 138 { TIFFTAG_ICCPROFILE, -3, -3, TIFF_UNDEFINED, 0, TIFF_SETGET_C32_UINT8,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "ICC Profile", NULL }, |
| 137 { TIFFTAG_GPSIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_IFD8, TIFF_SETGET_UNDE
FINED, FIELD_CUSTOM, 0, 0, "GPSIFDOffset", NULL }, | 139 { TIFFTAG_GPSIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_IFD8, TIFF_SETGET_UNDE
FINED, FIELD_CUSTOM, 0, 0, "GPSIFDOffset", NULL }, |
| 138 { TIFFTAG_FAXRECVPARAMS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SE
TGET_UINT32, FIELD_CUSTOM, TRUE, FALSE, "FaxRecvParams", NULL }, | 140 { TIFFTAG_FAXRECVPARAMS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SE
TGET_UINT32, FIELD_CUSTOM, TRUE, FALSE, "FaxRecvParams", NULL }, |
| 139 { TIFFTAG_FAXSUBADDRESS, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIFF_
SETGET_ASCII, FIELD_CUSTOM, TRUE, FALSE, "FaxSubAddress", NULL }, | 141 { TIFFTAG_FAXSUBADDRESS, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII, TIFF_
SETGET_ASCII, FIELD_CUSTOM, TRUE, FALSE, "FaxSubAddress", NULL }, |
| 140 { TIFFTAG_FAXRECVTIME, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETG
ET_UINT32, FIELD_CUSTOM, TRUE, FALSE, "FaxRecvTime", NULL }, | 142 { TIFFTAG_FAXRECVTIME, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETG
ET_UINT32, FIELD_CUSTOM, TRUE, FALSE, "FaxRecvTime", NULL }, |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 186 { TIFFTAG_ORIGINALRAWFILEDATA, -1, -1, TIFF_UNDEFINED, 0, TIFF_SETGET_C1
6_UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "OriginalRawFileData", NULL
}, | 188 { TIFFTAG_ORIGINALRAWFILEDATA, -1, -1, TIFF_UNDEFINED, 0, TIFF_SETGET_C1
6_UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "OriginalRawFileData", NULL
}, |
| 187 { TIFFTAG_ACTIVEAREA, 4, 4, TIFF_LONG, 0, TIFF_SETGET_C0_UINT32, TIFF_SE
TGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "ActiveArea", NULL }, | 189 { TIFFTAG_ACTIVEAREA, 4, 4, TIFF_LONG, 0, TIFF_SETGET_C0_UINT32, TIFF_SE
TGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "ActiveArea", NULL }, |
| 188 { TIFFTAG_MASKEDAREAS, -1, -1, TIFF_LONG, 0, TIFF_SETGET_C16_UINT32, TIF
F_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "MaskedAreas", NULL }, | 190 { TIFFTAG_MASKEDAREAS, -1, -1, TIFF_LONG, 0, TIFF_SETGET_C16_UINT32, TIF
F_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "MaskedAreas", NULL }, |
| 189 { TIFFTAG_ASSHOTICCPROFILE, -1, -1, TIFF_UNDEFINED, 0, TIFF_SETGET_C16_U
INT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "AsShotICCProfile", NULL }, | 191 { TIFFTAG_ASSHOTICCPROFILE, -1, -1, TIFF_UNDEFINED, 0, TIFF_SETGET_C16_U
INT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "AsShotICCProfile", NULL }, |
| 190 { TIFFTAG_ASSHOTPREPROFILEMATRIX, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGET
_C16_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "AsShotPreProfileMatrix",
NULL }, | 192 { TIFFTAG_ASSHOTPREPROFILEMATRIX, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGET
_C16_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "AsShotPreProfileMatrix",
NULL }, |
| 191 { TIFFTAG_CURRENTICCPROFILE, -1, -1, TIFF_UNDEFINED, 0, TIFF_SETGET_C16_
UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "CurrentICCProfile", NULL }, | 193 { TIFFTAG_CURRENTICCPROFILE, -1, -1, TIFF_UNDEFINED, 0, TIFF_SETGET_C16_
UINT8, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "CurrentICCProfile", NULL }, |
| 192 { TIFFTAG_CURRENTPREPROFILEMATRIX, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGE
T_C16_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "CurrentPreProfileMatrix
", NULL }, | 194 { TIFFTAG_CURRENTPREPROFILEMATRIX, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGE
T_C16_FLOAT, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "CurrentPreProfileMatrix
", NULL }, |
| 193 { TIFFTAG_PERSAMPLE, 0, 0, TIFF_SHORT, 0, TIFF_SETGET_UNDEFINED, TIFF_SE
TGET_UNDEFINED, FIELD_PSEUDO, TRUE, FALSE, "PerSample", NULL}, | 195 { TIFFTAG_PERSAMPLE, 0, 0, TIFF_SHORT, 0, TIFF_SETGET_UNDEFINED, TIFF_SE
TGET_UNDEFINED, FIELD_PSEUDO, TRUE, FALSE, "PerSample", NULL}, |
| 194 /* end DNG tags */ | 196 /* end DNG tags */ |
| 195 /* begin TIFF/FX tags */ | 197 /* begin TIFF/FX tags */ |
| 196 { TIFFTAG_INDEXED, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_UNDE
FINED, FIELD_CUSTOM, 0, 0, "Indexed" }, | 198 { TIFFTAG_INDEXED, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF_SETGET_
UNDEFINED, FIELD_CUSTOM, 0, 0, "Indexed", NULL }, |
| 197 { TIFFTAG_GLOBALPARAMETERSIFD, 1, 1, TIFF_IFD, 0, TIFF_SETGET_UINT32, TIFF_S
ETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "GlobalParametersIFD", NULL }, | 199 { TIFFTAG_GLOBALPARAMETERSIFD, 1, 1, TIFF_IFD8, 0, TIFF_SETGET_IFD8, TIF
F_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "GlobalParametersIFD", NULL }, |
| 198 { TIFFTAG_PROFILETYPE, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_U
NDEFINED, FIELD_CUSTOM, 0, 0, "ProfileType", NULL }, | 200 { TIFFTAG_PROFILETYPE, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETG
ET_UNDEFINED, FIELD_CUSTOM, 0, 0, "ProfileType", NULL }, |
| 199 { TIFFTAG_FAXPROFILE, 1, 1, TIFF_BYTE, 0, TIFF_SETGET_UINT8, TIFF_SETGET_UND
EFINED, FIELD_CUSTOM, 0, 0, "FaxProfile", NULL }, | 201 { TIFFTAG_FAXPROFILE, 1, 1, TIFF_BYTE, 0, TIFF_SETGET_UINT8, TIFF_SETGET
_UNDEFINED, FIELD_CUSTOM, 0, 0, "FaxProfile", NULL }, |
| 200 { TIFFTAG_CODINGMETHODS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET
_UNDEFINED, FIELD_CUSTOM, 0, 0, "CodingMethods", NULL }, | 202 { TIFFTAG_CODINGMETHODS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SE
TGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "CodingMethods", NULL }, |
| 201 { TIFFTAG_VERSIONYEAR, 4, 4, TIFF_BYTE, 0, TIFF_SETGET_C0_UINT8, TIFF_SETGET
_UNDEFINED, FIELD_CUSTOM, 0, 0, "VersionYear", NULL }, | 203 { TIFFTAG_VERSIONYEAR, 4, 4, TIFF_BYTE, 0, TIFF_SETGET_C0_UINT8, TIFF_SE
TGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "VersionYear", NULL }, |
| 202 { TIFFTAG_MODENUMBER, 1, 1, TIFF_BYTE, 0, TIFF_SETGET_UINT8, TIFF_SETGET_UND
EFINED, FIELD_CUSTOM, 0, 0, "ModeNumber", NULL }, | 204 { TIFFTAG_MODENUMBER, 1, 1, TIFF_BYTE, 0, TIFF_SETGET_UINT8, TIFF_SETGET
_UNDEFINED, FIELD_CUSTOM, 0, 0, "ModeNumber", NULL }, |
| 203 { TIFFTAG_DECODE, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGET_C16_FLOAT, TIFF_SET
GET_UNDEFINED, FIELD_CUSTOM, 0, 1, "Decode", NULL }, | 205 { TIFFTAG_DECODE, -1, -1, TIFF_SRATIONAL, 0, TIFF_SETGET_C16_FLOAT, TIFF
_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "Decode", NULL }, |
| 204 { TIFFTAG_IMAGEBASECOLOR, -1, -1, TIFF_SHORT, 0, TIFF_SETGET_C16_UINT16, TIF
F_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "ImageBaseColor", NULL }, | 206 { TIFFTAG_IMAGEBASECOLOR, -1, -1, TIFF_SHORT, 0, TIFF_SETGET_C16_UINT16,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "ImageBaseColor", NULL }, |
| 205 { TIFFTAG_T82OPTIONS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGET_UN
DEFINED, FIELD_CUSTOM, 0, 0, "T82Options", NULL }, | 207 { TIFFTAG_T82OPTIONS, 1, 1, TIFF_LONG, 0, TIFF_SETGET_UINT32, TIFF_SETGE
T_UNDEFINED, FIELD_CUSTOM, 0, 0, "T82Options", NULL }, |
| 206 { TIFFTAG_STRIPROWCOUNTS, -1, -1, TIFF_LONG, 0, TIFF_SETGET_C16_UINT32, TIFF
_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "StripRowCounts", NULL }, | 208 { TIFFTAG_STRIPROWCOUNTS, -1, -1, TIFF_LONG, 0, TIFF_SETGET_C16_UINT32,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 0, 1, "StripRowCounts", NULL }, |
| 207 { TIFFTAG_IMAGELAYER, 2, 2, TIFF_LONG, 0, TIFF_SETGET_C0_UINT32, TIFF_SETGET
_UNDEFINED, FIELD_CUSTOM, 0, 0, "ImageLayer", NULL }, | 209 { TIFFTAG_IMAGELAYER, 2, 2, TIFF_LONG, 0, TIFF_SETGET_C0_UINT32, TIFF_SE
TGET_UNDEFINED, FIELD_CUSTOM, 0, 0, "ImageLayer", NULL }, |
| 208 » /* end DNG tags */ | 210 » /* end TIFF/FX tags */ |
| 209 /* begin pseudo tags */ | 211 /* begin pseudo tags */ |
| 210 }; | 212 }; |
| 211 | 213 |
| 212 static TIFFField | 214 static TIFFField |
| 213 exifFields[] = { | 215 exifFields[] = { |
| 214 { EXIFTAG_EXPOSURETIME, 1, 1, TIFF_RATIONAL, 0, TIFF_SETGET_DOUBLE, TIFF
_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ExposureTime", NULL }, | 216 { EXIFTAG_EXPOSURETIME, 1, 1, TIFF_RATIONAL, 0, TIFF_SETGET_DOUBLE, TIFF
_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ExposureTime", NULL }, |
| 215 { EXIFTAG_FNUMBER, 1, 1, TIFF_RATIONAL, 0, TIFF_SETGET_DOUBLE, TIFF_SETG
ET_UNDEFINED, FIELD_CUSTOM, 1, 0, "FNumber", NULL }, | 217 { EXIFTAG_FNUMBER, 1, 1, TIFF_RATIONAL, 0, TIFF_SETGET_DOUBLE, TIFF_SETG
ET_UNDEFINED, FIELD_CUSTOM, 1, 0, "FNumber", NULL }, |
| 216 { EXIFTAG_EXPOSUREPROGRAM, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF
_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ExposureProgram", NULL }, | 218 { EXIFTAG_EXPOSUREPROGRAM, 1, 1, TIFF_SHORT, 0, TIFF_SETGET_UINT16, TIFF
_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "ExposureProgram", NULL }, |
| 217 { EXIFTAG_SPECTRALSENSITIVITY, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "SpectralSensitivity", NULL }, | 219 { EXIFTAG_SPECTRALSENSITIVITY, -1, -1, TIFF_ASCII, 0, TIFF_SETGET_ASCII,
TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 0, "SpectralSensitivity", NULL }, |
| 218 { EXIFTAG_ISOSPEEDRATINGS, -1, -1, TIFF_SHORT, 0, TIFF_SETGET_C16_UINT16
, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 1, "ISOSpeedRatings", NULL }, | 220 { EXIFTAG_ISOSPEEDRATINGS, -1, -1, TIFF_SHORT, 0, TIFF_SETGET_C16_UINT16
, TIFF_SETGET_UNDEFINED, FIELD_CUSTOM, 1, 1, "ISOSpeedRatings", NULL }, |
| (...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 487 case TIFF_DOUBLE: | 489 case TIFF_DOUBLE: |
| 488 case TIFF_LONG8: | 490 case TIFF_LONG8: |
| 489 case TIFF_SLONG8: | 491 case TIFF_SLONG8: |
| 490 case TIFF_IFD8: | 492 case TIFF_IFD8: |
| 491 return 8; | 493 return 8; |
| 492 default: | 494 default: |
| 493 return 0; | 495 return 0; |
| 494 } | 496 } |
| 495 } | 497 } |
| 496 | 498 |
| 497 /* Sync from 3.8.2's modified*/ | |
| 498 #ifdef _WIN32_WCE | |
| 499 void* wceex_bsearch(const void *key, const void *base, size_t nmemb, size_t size
, | |
| 500 int (*compar)(const void *, cons
t void *)); | |
| 501 #define bsearch wceex_bsearch | |
| 502 #endif | |
| 503 | |
| 504 const TIFFField* | 499 const TIFFField* |
| 505 TIFFFindField(TIFF* tif, uint32 tag, TIFFDataType dt) | 500 TIFFFindField(TIFF* tif, uint32 tag, TIFFDataType dt) |
| 506 { | 501 { |
| 507 TIFFField key = {0, 0, 0, TIFF_NOTYPE, 0, 0, 0, 0, 0, 0, NULL, NULL}; | 502 TIFFField key = {0, 0, 0, TIFF_NOTYPE, 0, 0, 0, 0, 0, 0, NULL, NULL}; |
| 508 TIFFField* pkey = &key; | 503 TIFFField* pkey = &key; |
| 509 const TIFFField **ret; | 504 const TIFFField **ret; |
| 510 if (tif->tif_foundfield && tif->tif_foundfield->field_tag == tag && | 505 if (tif->tif_foundfield && tif->tif_foundfield->field_tag == tag && |
| 511 (dt == TIFF_ANY || dt == tif->tif_foundfield->field_type)) | 506 (dt == TIFF_ANY || dt == tif->tif_foundfield->field_type)) |
| 512 return tif->tif_foundfield; | 507 return tif->tif_foundfield; |
| 513 | 508 |
| (...skipping 25 matching lines...) Expand all Loading... |
| 539 | 534 |
| 540 /* If we are invoked with no field information, then just return. */ | 535 /* If we are invoked with no field information, then just return. */ |
| 541 if (!tif->tif_fields) | 536 if (!tif->tif_fields) |
| 542 return NULL; | 537 return NULL; |
| 543 | 538 |
| 544 /* NB: use linear search since list is sorted by key#, not name */ | 539 /* NB: use linear search since list is sorted by key#, not name */ |
| 545 | 540 |
| 546 key.field_name = (char *)field_name; | 541 key.field_name = (char *)field_name; |
| 547 key.field_type = dt; | 542 key.field_type = dt; |
| 548 | 543 |
| 549 #if 1 | |
| 550 ret = (const TIFFField **) | 544 ret = (const TIFFField **) |
| 551 td_lfind(&pkey, tif->tif_fields, &tif->tif_nfields, | 545 td_lfind(&pkey, tif->tif_fields, &tif->tif_nfields, |
| 552 sizeof(TIFFField *), tagNameCompare); | 546 sizeof(TIFFField *), tagNameCompare); |
| 553 #else | 547 |
| 554 » // from old svn version | |
| 555 » /*ret = (const TIFFFieldInfo **) lfind(&pkey, | |
| 556 » » » » » » » » » »
» tif->tif_fieldinfo, | |
| 557 » » » » » » » » » »
» &tif->tif_nfields, | |
| 558 » » » » » » » » » »
» sizeof(TIFFFieldInfo *), | |
| 559 » » » » » » » » » »
» tagNameCompare); | |
| 560 » */ | |
| 561 » /*modify by Sunliang.Liu 20090827 for some platform not support lfind*/ | |
| 562 » ret = NULL; | |
| 563 #endif | |
| 564 return tif->tif_foundfield = (ret ? *ret : NULL); | 548 return tif->tif_foundfield = (ret ? *ret : NULL); |
| 565 } | 549 } |
| 566 | 550 |
| 567 const TIFFField* | 551 const TIFFField* |
| 568 TIFFFieldWithTag(TIFF* tif, uint32 tag) | 552 TIFFFieldWithTag(TIFF* tif, uint32 tag) |
| 569 { | 553 { |
| 570 const TIFFField* fip = TIFFFindField(tif, tag, TIFF_ANY); | 554 const TIFFField* fip = TIFFFindField(tif, tag, TIFF_ANY); |
| 571 if (!fip) { | 555 if (!fip) { |
| 572 TIFFErrorExt(tif->tif_clientdata, "TIFFFieldWithTag", | 556 TIFFErrorExt(tif->tif_clientdata, "TIFFFieldWithTag", |
| 573 "Internal error, unknown tag 0x%x", | 557 "Internal error, unknown tag 0x%x", |
| (...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 722 if (fld->field_name == NULL) { | 706 if (fld->field_name == NULL) { |
| 723 _TIFFfree(fld); | 707 _TIFFfree(fld); |
| 724 return NULL; | 708 return NULL; |
| 725 } | 709 } |
| 726 fld->field_subfields = NULL; | 710 fld->field_subfields = NULL; |
| 727 | 711 |
| 728 /* | 712 /* |
| 729 * note that this name is a special sign to TIFFClose() and | 713 * note that this name is a special sign to TIFFClose() and |
| 730 * _TIFFSetupFields() to free the field | 714 * _TIFFSetupFields() to free the field |
| 731 */ | 715 */ |
| 732 » sprintf(fld->field_name, "Tag %d", (int) tag); | 716 » snprintf(fld->field_name, 32, "Tag %d", (int) tag); |
| 733 | 717 |
| 734 return fld; | 718 return fld; |
| 735 } | 719 } |
| 736 | 720 |
| 737 /**************************************************************************** | 721 /**************************************************************************** |
| 738 * O B S O L E T E D I N T E R F A C E S | 722 * O B S O L E T E D I N T E R F A C E S |
| 739 * | 723 * |
| 740 * Don't use this stuff in your applications, it may be removed in the future | 724 * Don't use this stuff in your applications, it may be removed in the future |
| 741 * libtiff versions. | 725 * libtiff versions. |
| 742 ****************************************************************************/ | 726 ****************************************************************************/ |
| (...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 966 | 950 |
| 967 /* vim: set ts=8 sts=8 sw=8 noet: */ | 951 /* vim: set ts=8 sts=8 sw=8 noet: */ |
| 968 | 952 |
| 969 /* | 953 /* |
| 970 * Local Variables: | 954 * Local Variables: |
| 971 * mode: c | 955 * mode: c |
| 972 * c-basic-offset: 8 | 956 * c-basic-offset: 8 |
| 973 * fill-column: 78 | 957 * fill-column: 78 |
| 974 * End: | 958 * End: |
| 975 */ | 959 */ |
| 976 | |
| OLD | NEW |