1 /**************************************************************************\ 2 * 3 * Copyright (c) 1999-2000 Microsoft Corporation 4 * 5 * Module Name: 6 * 7 * GdiplusImaging.h 8 * 9 * Abstract: 10 * 11 * GUIDs defined and used by the imaging library 12 * 13 \**************************************************************************/ 14 #ifndef _GDIPLUSIMAGING_H 15 #define _GDIPLUSIMAGING_H 16 17 //--------------------------------------------------------------------------- 18 // Image file format identifiers 19 //--------------------------------------------------------------------------- 20 21 DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 22 DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 23 DEFINE_GUID(ImageFormatBMP, 0xb96b3cab,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 24 DEFINE_GUID(ImageFormatEMF, 0xb96b3cac,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 25 DEFINE_GUID(ImageFormatWMF, 0xb96b3cad,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 26 DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 27 DEFINE_GUID(ImageFormatPNG, 0xb96b3caf,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 28 DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 29 DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 30 DEFINE_GUID(ImageFormatEXIF, 0xb96b3cb2,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 31 #ifndef DCR_USE_NEW_140855 32 DEFINE_GUID(ImageFormatPhotoCD, 0xb96b3cb3,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 33 DEFINE_GUID(ImageFormatFlashPIX, 0xb96b3cb4,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 34 #endif 35 DEFINE_GUID(ImageFormatIcon, 0xb96b3cb5,0x0728,0x11d3,0x9d,0x7b,0x00,0x00,0xf8,0x1e,0xf3,0x2e); 36 37 //--------------------------------------------------------------------------- 38 // Predefined multi-frame dimension IDs 39 //--------------------------------------------------------------------------- 40 41 DEFINE_GUID(FrameDimensionTime, 0x6aedbd6d,0x3fb5,0x418a,0x83,0xa6,0x7f,0x45,0x22,0x9d,0xc8,0x72); 42 DEFINE_GUID(FrameDimensionResolution, 0x84236f7b,0x3bd3,0x428f,0x8d,0xab,0x4e,0xa1,0x43,0x9c,0xa3,0x15); 43 DEFINE_GUID(FrameDimensionPage, 0x7462dc86,0x6180,0x4c7e,0x8e,0x3f,0xee,0x73,0x33,0xa7,0xa4,0x83); 44 45 //--------------------------------------------------------------------------- 46 // Property sets 47 //--------------------------------------------------------------------------- 48 49 DEFINE_GUID(FormatIDImageInformation, 0xe5836cbe,0x5eef,0x4f1d,0xac,0xde,0xae,0x4c,0x43,0xb6,0x08,0xce); 50 DEFINE_GUID(FormatIDJpegAppHeaders, 0x1c4afdcd,0x6177,0x43cf,0xab,0xc7,0x5f,0x51,0xaf,0x39,0xee,0x85); 51 52 #ifndef DCR_USE_NEW_140855 53 //--------------------------------------------------------------------------- 54 // Decoder parameter sets 55 //--------------------------------------------------------------------------- 56 DEFINE_GUID(DecoderTransColor, 0xb7a98c8f,0xdce7,0x457d,0xbf,0xa5,0xce,0xa7,0x1b,0xd1,0x4d,0xd6); 57 DEFINE_GUID(DecoderTransRange, 0xabeed189,0xd988,0x4d03,0xb4,0x25,0x57,0x10,0x55,0xc7,0x6a,0xd1); 58 DEFINE_GUID(DecoderOutputChannel, 0x2ff8f51e,0x724d,0x45fe,0x86,0xce,0x17,0x77,0xa0,0x56,0xda,0x60); 59 DEFINE_GUID(DecoderIconRes, 0x5c656eec,0xe94f,0x45ba,0xa6,0xf6,0x10,0x62,0xe8,0x5f,0x4a,0x7f); 60 #endif 61 62 //--------------------------------------------------------------------------- 63 // Encoder parameter sets 64 //--------------------------------------------------------------------------- 65 66 DEFINE_GUID(EncoderCompression, 0xe09d739d,0xccd4,0x44ee,0x8e,0xba,0x3f,0xbf,0x8b,0xe4,0xfc,0x58); 67 DEFINE_GUID(EncoderColorDepth, 0x66087055,0xad66,0x4c7c,0x9a,0x18,0x38,0xa2,0x31,0x0b,0x83,0x37); 68 DEFINE_GUID(EncoderScanMethod, 0x3a4e2661,0x3109,0x4e56,0x85,0x36,0x42,0xc1,0x56,0xe7,0xdc,0xfa); 69 DEFINE_GUID(EncoderVersion, 0x24d18c76,0x814a,0x41a4,0xbf,0x53,0x1c,0x21,0x9c,0xcc,0xf7,0x97); 70 DEFINE_GUID(EncoderRenderMethod, 0x6d42c53a,0x229a,0x4825,0x8b,0xb7,0x5c,0x99,0xe2,0xb9,0xa8,0xb8); 71 DEFINE_GUID(EncoderQuality, 0x1d5be4b5,0xfa4a,0x452d,0x9c,0xdd,0x5d,0xb3,0x51,0x05,0xe7,0xeb); 72 DEFINE_GUID(EncoderTransformation,0x8d0eb2d1,0xa58e,0x4ea8,0xaa,0x14,0x10,0x80,0x74,0xb7,0xb6,0xf9); 73 DEFINE_GUID(EncoderLuminanceTable,0xedb33bce,0x0266,0x4a77,0xb9,0x04,0x27,0x21,0x60,0x99,0xe7,0x17); 74 DEFINE_GUID(EncoderChrominanceTable,0xf2e455dc,0x09b3,0x4316,0x82,0x60,0x67,0x6a,0xda,0x32,0x48,0x1c); 75 DEFINE_GUID(EncoderSaveFlag,0x292266fc,0xac40,0x47bf,0x8c, 0xfc, 0xa8, 0x5b, 0x89, 0xa6, 0x55, 0xde); 76 77 DEFINE_GUID(CodecIImageBytes,0x025d1823,0x6c7d,0x447b,0xbb, 0xdb, 0xa3, 0xcb, 0xc3, 0xdf, 0xa2, 0xfc); 78 79 MIDL_INTERFACE("025D1823-6C7D-447B-BBDB-A3CBC3DFA2FC") 80 IImageBytes : public IUnknown 81 { 82 public: 83 // Return total number of bytes in the IStream 84 85 STDMETHOD(CountBytes)( 86 OUT UINT *pcb 87 ) = 0; 88 89 // Locks "cb" bytes, starting from "ulOffset" in the stream, and returns the 90 // pointer to the beginning of the locked memory chunk in "ppvBytes" 91 92 STDMETHOD(LockBytes)( 93 IN UINT cb, 94 IN ULONG ulOffset, 95 OUT const VOID ** ppvBytes 96 ) = 0; 97 98 // Unlocks "cb" bytes, pointed by "pvBytes", starting from "ulOffset" in the 99 // stream 100 101 STDMETHOD(UnlockBytes)( 102 IN const VOID *pvBytes, 103 IN UINT cb, 104 IN ULONG ulOffset 105 ) = 0; 106 }; 107 108 //-------------------------------------------------------------------------- 109 // ImageCodecInfo structure 110 //-------------------------------------------------------------------------- 111 112 class ImageCodecInfo 113 { 114 public: 115 CLSID Clsid; 116 GUID FormatID; 117 const WCHAR* CodecName; 118 const WCHAR* DllName; 119 const WCHAR* FormatDescription; 120 const WCHAR* FilenameExtension; 121 const WCHAR* MimeType; 122 DWORD Flags; 123 DWORD Version; 124 DWORD SigCount; 125 DWORD SigSize; 126 const BYTE* SigPattern; 127 const BYTE* SigMask; 128 }; 129 130 //-------------------------------------------------------------------------- 131 // Information flags about image codecs 132 //-------------------------------------------------------------------------- 133 134 enum ImageCodecFlags 135 { 136 ImageCodecFlagsEncoder = 0x00000001, 137 ImageCodecFlagsDecoder = 0x00000002, 138 ImageCodecFlagsSupportBitmap = 0x00000004, 139 ImageCodecFlagsSupportVector = 0x00000008, 140 ImageCodecFlagsSeekableEncode = 0x00000010, 141 ImageCodecFlagsBlockingDecode = 0x00000020, 142 143 ImageCodecFlagsBuiltin = 0x00010000, 144 ImageCodecFlagsSystem = 0x00020000, 145 ImageCodecFlagsUser = 0x00040000 146 }; 147 148 //--------------------------------------------------------------------------- 149 // Access modes used when calling Image::LockBits 150 //--------------------------------------------------------------------------- 151 152 enum ImageLockMode 153 { 154 ImageLockModeRead = 0x0001, 155 ImageLockModeWrite = 0x0002, 156 ImageLockModeUserInputBuf= 0x0004 157 }; 158 159 //--------------------------------------------------------------------------- 160 // Information about image pixel data 161 //--------------------------------------------------------------------------- 162 163 class BitmapData 164 { 165 public: 166 UINT Width; 167 UINT Height; 168 INT Stride; 169 PixelFormat PixelFormat; 170 VOID* Scan0; 171 UINT_PTR Reserved; 172 }; 173 174 //--------------------------------------------------------------------------- 175 // Image flags 176 //--------------------------------------------------------------------------- 177 178 enum ImageFlags 179 { 180 ImageFlagsNone = 0, 181 182 // Low-word: shared with SINKFLAG_x 183 184 ImageFlagsScalable = 0x0001, 185 ImageFlagsHasAlpha = 0x0002, 186 ImageFlagsHasTranslucent = 0x0004, 187 ImageFlagsPartiallyScalable = 0x0008, 188 189 // Low-word: color space definition 190 191 ImageFlagsColorSpaceRGB = 0x0010, 192 ImageFlagsColorSpaceCMYK = 0x0020, 193 ImageFlagsColorSpaceGRAY = 0x0040, 194 ImageFlagsColorSpaceYCBCR = 0x0080, 195 ImageFlagsColorSpaceYCCK = 0x0100, 196 197 // Low-word: image size info 198 199 ImageFlagsHasRealDPI = 0x1000, 200 ImageFlagsHasRealPixelSize = 0x2000, 201 202 // High-word 203 204 ImageFlagsReadOnly = 0x00010000, 205 ImageFlagsCaching = 0x00020000 206 }; 207 208 enum RotateFlipType 209 { 210 RotateNoneFlipNone = 0, 211 Rotate90FlipNone = 1, 212 Rotate180FlipNone = 2, 213 Rotate270FlipNone = 3, 214 215 RotateNoneFlipX = 4, 216 Rotate90FlipX = 5, 217 Rotate180FlipX = 6, 218 Rotate270FlipX = 7, 219 220 RotateNoneFlipY = Rotate180FlipX, 221 Rotate90FlipY = Rotate270FlipX, 222 Rotate180FlipY = RotateNoneFlipX, 223 Rotate270FlipY = Rotate90FlipX, 224 225 RotateNoneFlipXY = Rotate180FlipNone, 226 Rotate90FlipXY = Rotate270FlipNone, 227 Rotate180FlipXY = RotateNoneFlipNone, 228 Rotate270FlipXY = Rotate90FlipNone 229 }; 230 231 //--------------------------------------------------------------------------- 232 // Encoder Parameter structure 233 //--------------------------------------------------------------------------- 234 class EncoderParameter 235 { 236 public: 237 GUID Guid; // GUID of the parameter 238 ULONG NumberOfValues; // Number of the parameter values 239 ULONG Type; // Value type, like ValueTypeLONG etc. 240 VOID* Value; // A pointer to the parameter values 241 }; 242 243 //--------------------------------------------------------------------------- 244 // Encoder Parameters structure 245 //--------------------------------------------------------------------------- 246 class EncoderParameters 247 { 248 public: 249 UINT Count; // Number of parameters in this structure 250 EncoderParameter Parameter[1]; // Parameter values 251 }; 252 253 //--------------------------------------------------------------------------- 254 // Property Item 255 //--------------------------------------------------------------------------- 256 class PropertyItem 257 { 258 public: 259 PROPID id; // ID of this property 260 ULONG length; // Length of the property value, in bytes 261 WORD type; // Type of the value, as one of TAG_TYPE_XXX 262 // defined above 263 VOID* value; // property value 264 }; 265 266 #ifdef DCR_USE_NEW_140857 267 //--------------------------------------------------------------------------- 268 // Image property types 269 //--------------------------------------------------------------------------- 270 #define PropertyTagTypeByte 1 271 #define PropertyTagTypeASCII 2 272 #define PropertyTagTypeShort 3 273 #define PropertyTagTypeLong 4 274 #define PropertyTagTypeRational 5 275 #define PropertyTagTypeUndefined 7 276 #define PropertyTagTypeSLONG 9 277 #define PropertyTagTypeSRational 10 278 #endif 279 280 //--------------------------------------------------------------------------- 281 // Image property ID tags 282 //--------------------------------------------------------------------------- 283 284 #define PropertyTagExifIFD 0x8769 285 #define PropertyTagGpsIFD 0x8825 286 287 #define PropertyTagNewSubfileType 0x00FE 288 #define PropertyTagSubfileType 0x00FF 289 #define PropertyTagImageWidth 0x0100 290 #define PropertyTagImageHeight 0x0101 291 #define PropertyTagBitsPerSample 0x0102 292 #define PropertyTagCompression 0x0103 293 #define PropertyTagPhotometricInterp 0x0106 294 #define PropertyTagThreshHolding 0x0107 295 #define PropertyTagCellWidth 0x0108 296 #define PropertyTagCellHeight 0x0109 297 #define PropertyTagFillOrder 0x010A 298 #define PropertyTagDocumentName 0x010D 299 #define PropertyTagImageDescription 0x010E 300 #define PropertyTagEquipMake 0x010F 301 #define PropertyTagEquipModel 0x0110 302 #define PropertyTagStripOffsets 0x0111 303 #define PropertyTagOrientation 0x0112 304 #define PropertyTagSamplesPerPixel 0x0115 305 #define PropertyTagRowsPerStrip 0x0116 306 #define PropertyTagStripBytesCount 0x0117 307 #define PropertyTagMinSampleValue 0x0118 308 #define PropertyTagMaxSampleValue 0x0119 309 #define PropertyTagXResolution 0x011A // Image resolution in width direction 310 #define PropertyTagYResolution 0x011B // Image resolution in height direction 311 #define PropertyTagPlanarConfig 0x011C // Image data arrangement 312 #define PropertyTagPageName 0x011D 313 #define PropertyTagXPosition 0x011E 314 #define PropertyTagYPosition 0x011F 315 #define PropertyTagFreeOffset 0x0120 316 #define PropertyTagFreeByteCounts 0x0121 317 #define PropertyTagGrayResponseUnit 0x0122 318 #define PropertyTagGrayResponseCurve 0x0123 319 #define PropertyTagT4Option 0x0124 320 #define PropertyTagT6Option 0x0125 321 #define PropertyTagResolutionUnit 0x0128 // Unit of X and Y resolution 322 #define PropertyTagPageNumber 0x0129 323 #define PropertyTagTransferFuncition 0x012D 324 #define PropertyTagSoftwareUsed 0x0131 325 #define PropertyTagDateTime 0x0132 326 #define PropertyTagArtist 0x013B 327 #define PropertyTagHostComputer 0x013C 328 #define PropertyTagPredictor 0x013D 329 #define PropertyTagWhitePoint 0x013E 330 #define PropertyTagPrimaryChromaticities 0x013F 331 #define PropertyTagColorMap 0x0140 332 #define PropertyTagHalftoneHints 0x0141 333 #define PropertyTagTileWidth 0x0142 334 #define PropertyTagTileLength 0x0143 335 #define PropertyTagTileOffset 0x0144 336 #define PropertyTagTileByteCounts 0x0145 337 #define PropertyTagInkSet 0x014C 338 #define PropertyTagInkNames 0x014D 339 #define PropertyTagNumberOfInks 0x014E 340 #define PropertyTagDotRange 0x0150 341 #define PropertyTagTargetPrinter 0x0151 342 #define PropertyTagExtraSamples 0x0152 343 #define PropertyTagSampleFormat 0x0153 344 #define PropertyTagSMinSampleValue 0x0154 345 #define PropertyTagSMaxSampleValue 0x0155 346 #define PropertyTagTransferRange 0x0156 347 348 #define PropertyTagJPEGProc 0x0200 349 #define PropertyTagJPEGInterFormat 0x0201 350 #define PropertyTagJPEGInterLength 0x0202 351 #define PropertyTagJPEGRestartInterval 0x0203 352 #define PropertyTagJPEGLosslessPredictors 0x0205 353 #define PropertyTagJPEGPointTransforms 0x0206 354 #define PropertyTagJPEGQTables 0x0207 355 #define PropertyTagJPEGDCTables 0x0208 356 #define PropertyTagJPEGACTables 0x0209 357 358 #define PropertyTagYCbCrCoefficients 0x0211 359 #define PropertyTagYCbCrSubsampling 0x0212 360 #define PropertyTagYCbCrPositioning 0x0213 361 #define PropertyTagREFBlackWhite 0x0214 362 363 #define PropertyTagICCProfile 0x8773 // This TAG is defined by ICC 364 // for embedded ICC in TIFF 365 #define PropertyTagGamma 0x0301 366 #define PropertyTagICCProfileDescriptor 0x0302 367 #define PropertyTagSRGBRenderingIntent 0x0303 368 369 #define PropertyTagImageTitle 0x0320 370 #define PropertyTagCopyright 0x8298 371 372 // Extra TAGs (Like Adobe Image Information tags etc.) 373 374 #define PropertyTagResolutionXUnit 0x5001 375 #define PropertyTagResolutionYUnit 0x5002 376 #define PropertyTagResolutionXLengthUnit 0x5003 377 #define PropertyTagResolutionYLengthUnit 0x5004 378 #define PropertyTagPrintFlags 0x5005 379 #define PropertyTagPrintFlagsVersion 0x5006 380 #define PropertyTagPrintFlagsCrop 0x5007 381 #define PropertyTagPrintFlagsBleedWidth 0x5008 382 #define PropertyTagPrintFlagsBleedWidthScale 0x5009 383 #define PropertyTagHalftoneLPI 0x500A 384 #define PropertyTagHalftoneLPIUnit 0x500B 385 #define PropertyTagHalftoneDegree 0x500C 386 #define PropertyTagHalftoneShape 0x500D 387 #define PropertyTagHalftoneMisc 0x500E 388 #define PropertyTagHalftoneScreen 0x500F 389 #define PropertyTagJPEGQuality 0x5010 390 #define PropertyTagGridSize 0x5011 391 #define PropertyTagThumbnailFormat 0x5012 // 1 = JPEG, 0 = RAW RGB 392 #define PropertyTagThumbnailWidth 0x5013 393 #define PropertyTagThumbnailHeight 0x5014 394 #define PropertyTagThumbnailColorDepth 0x5015 395 #define PropertyTagThumbnailPlanes 0x5016 396 #define PropertyTagThumbnailRawBytes 0x5017 397 #define PropertyTagThumbnailSize 0x5018 398 #define PropertyTagThumbnailCompressedSize 0x5019 399 #define PropertyTagColorTransferFunction 0x501A 400 #define PropertyTagThumbnailData 0x501B// RAW thumbnail bits in 401 // JPEG format or RGB format 402 // depends on 403 // PropertyTagThumbnailFormat 404 405 // Thumbnail related TAGs 406 407 #define PropertyTagThumbnailImageWidth 0x5020 // Thumbnail width 408 #define PropertyTagThumbnailImageHeight 0x5021 // Thumbnail height 409 #define PropertyTagThumbnailBitsPerSample 0x5022 // Number of bits per 410 // component 411 #define PropertyTagThumbnailCompression 0x5023 // Compression Scheme 412 #define PropertyTagThumbnailPhotometricInterp 0x5024 // Pixel composition 413 #define PropertyTagThumbnailImageDescription 0x5025 // Image Tile 414 #define PropertyTagThumbnailEquipMake 0x5026 // Manufacturer of Image 415 // Input equipment 416 #define PropertyTagThumbnailEquipModel 0x5027 // Model of Image input 417 // equipment 418 #define PropertyTagThumbnailStripOffsets 0x5028 // Image data location 419 #define PropertyTagThumbnailOrientation 0x5029 // Orientation of image 420 #define PropertyTagThumbnailSamplesPerPixel 0x502A // Number of components 421 #define PropertyTagThumbnailRowsPerStrip 0x502B // Number of rows per strip 422 #define PropertyTagThumbnailStripBytesCount 0x502C // Bytes per compressed 423 // strip 424 #define PropertyTagThumbnailResolutionX 0x502D // Resolution in width 425 // direction 426 #define PropertyTagThumbnailResolutionY 0x502E // Resolution in height 427 // direction 428 #define PropertyTagThumbnailPlanarConfig 0x502F // Image data arrangement 429 #define PropertyTagThumbnailResolutionUnit 0x5030 // Unit of X and Y 430 // Resolution 431 #define PropertyTagThumbnailTransferFunction 0x5031 // Transfer function 432 #define PropertyTagThumbnailSoftwareUsed 0x5032 // Software used 433 #define PropertyTagThumbnailDateTime 0x5033 // File change date and 434 // time 435 #define PropertyTagThumbnailArtist 0x5034 // Person who created the 436 // image 437 #define PropertyTagThumbnailWhitePoint 0x5035 // White point chromaticity 438 #define PropertyTagThumbnailPrimaryChromaticities 0x5036 439 // Chromaticities of 440 // primaries 441 #define PropertyTagThumbnailYCbCrCoefficients 0x5037 // Color space transforma- 442 // tion coefficients 443 #define PropertyTagThumbnailYCbCrSubsampling 0x5038 // Subsampling ratio of Y 444 // to C 445 #define PropertyTagThumbnailYCbCrPositioning 0x5039 // Y and C position 446 #define PropertyTagThumbnailRefBlackWhite 0x503A // Pair of black and white 447 // reference values 448 #define PropertyTagThumbnailCopyRight 0x503B // CopyRight holder 449 450 #define PropertyTagLuminanceTable 0x5090 451 #define PropertyTagChrominanceTable 0x5091 452 453 #define PropertyTagFrameDelay 0x5100 454 #define PropertyTagLoopCount 0x5101 455 456 #define PropertyTagPixelUnit 0x5110 // Unit specifier for pixel/unit 457 #define PropertyTagPixelPerUnitX 0x5111 // Pixels per unit in X 458 #define PropertyTagPixelPerUnitY 0x5112 // Pixels per unit in Y 459 #define PropertyTagPaletteHistogram 0x5113 // Palette histogram 460 461 // EXIF specific tag 462 463 #define PropertyTagExifExposureTime 0x829A 464 #define PropertyTagExifFNumber 0x829D 465 466 #define PropertyTagExifExposureProg 0x8822 467 #define PropertyTagExifSpectralSense 0x8824 468 #define PropertyTagExifISOSpeed 0x8827 469 #define PropertyTagExifOECF 0x8828 470 471 #define PropertyTagExifVer 0x9000 472 #define PropertyTagExifDTOrig 0x9003 // Date & time of original 473 #define PropertyTagExifDTDigitized 0x9004 // Date & time of digital data generation 474 475 #define PropertyTagExifCompConfig 0x9101 476 #define PropertyTagExifCompBPP 0x9102 477 478 #define PropertyTagExifShutterSpeed 0x9201 479 #define PropertyTagExifAperture 0x9202 480 #define PropertyTagExifBrightness 0x9203 481 #define PropertyTagExifExposureBias 0x9204 482 #define PropertyTagExifMaxAperture 0x9205 483 #define PropertyTagExifSubjectDist 0x9206 484 #define PropertyTagExifMeteringMode 0x9207 485 #define PropertyTagExifLightSource 0x9208 486 #define PropertyTagExifFlash 0x9209 487 #define PropertyTagExifFocalLength 0x920A 488 #define PropertyTagExifMakerNote 0x927C 489 #define PropertyTagExifUserComment 0x9286 490 #define PropertyTagExifDTSubsec 0x9290 // Date & Time subseconds 491 #define PropertyTagExifDTOrigSS 0x9291 // Date & Time original subseconds 492 #define PropertyTagExifDTDigSS 0x9292 // Date & TIme digitized subseconds 493 494 #define PropertyTagExifFPXVer 0xA000 495 #define PropertyTagExifColorSpace 0xA001 496 #define PropertyTagExifPixXDim 0xA002 497 #define PropertyTagExifPixYDim 0xA003 498 #define PropertyTagExifRelatedWav 0xA004 // related sound file 499 #define PropertyTagExifInterop 0xA005 500 #define PropertyTagExifFlashEnergy 0xA20B 501 #define PropertyTagExifSpatialFR 0xA20C // Spatial Frequency Response 502 #define PropertyTagExifFocalXRes 0xA20E // Focal Plane X Resolution 503 #define PropertyTagExifFocalYRes 0xA20F // Focal Plane Y Resolution 504 #define PropertyTagExifFocalResUnit 0xA210 // Focal Plane Resolution Unit 505 #define PropertyTagExifSubjectLoc 0xA214 506 #define PropertyTagExifExposureIndex 0xA215 507 #define PropertyTagExifSensingMethod 0xA217 508 #define PropertyTagExifFileSource 0xA300 509 #define PropertyTagExifSceneType 0xA301 510 #define PropertyTagExifCfaPattern 0xA302 511 512 #define PropertyTagGpsVer 0x0000 513 #define PropertyTagGpsLatitudeRef 0x0001 514 #define PropertyTagGpsLatitude 0x0002 515 #define PropertyTagGpsLongitudeRef 0x0003 516 #define PropertyTagGpsLongitude 0x0004 517 #define PropertyTagGpsAltitudeRef 0x0005 518 #define PropertyTagGpsAltitude 0x0006 519 #define PropertyTagGpsGpsTime 0x0007 520 #define PropertyTagGpsGpsSatellites 0x0008 521 #define PropertyTagGpsGpsStatus 0x0009 522 #define PropertyTagGpsGpsMeasureMode 0x00A 523 #define PropertyTagGpsGpsDop 0x000B // Measurement precision 524 #define PropertyTagGpsSpeedRef 0x000C 525 #define PropertyTagGpsSpeed 0x000D 526 #define PropertyTagGpsTrackRef 0x000E 527 #define PropertyTagGpsTrack 0x000F 528 #define PropertyTagGpsImgDirRef 0x0010 529 #define PropertyTagGpsImgDir 0x0011 530 #define PropertyTagGpsMapDatum 0x0012 531 #define PropertyTagGpsDestLatRef 0x0013 532 #define PropertyTagGpsDestLat 0x0014 533 #define PropertyTagGpsDestLongRef 0x0015 534 #define PropertyTagGpsDestLong 0x0016 535 #define PropertyTagGpsDestBearRef 0x0017 536 #define PropertyTagGpsDestBear 0x0018 537 #define PropertyTagGpsDestDistRef 0x0019 538 #define PropertyTagGpsDestDist 0x001A 539 540 #endif 541