Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

490 lines
22 KiB

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