GdiPlusImaging.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:23k
源码类别:

模拟服务器

开发平台:

C/C++

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