Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 
 
 

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