GdiPlusImaging.h
上传用户:jinlangri
上传日期:2022-07-17
资源大小:10774k
文件大小:24k
源码类别:

GDI/图象编程

开发平台:

Visual C++

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