[2/3] gdiplus: some defines for Image metadata API

Nikolay Sivov bunglehead at gmail.com
Mon Sep 8 03:04:01 CDT 2008


Changelog:
    - added PropertyItem definition
    - added metadata tag IDs

>From 6e615074591d1995b00d9043bdc91f7e43974674 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <bunglehead at gmail.com>
Date: Mon, 8 Sep 2008 01:04:20 +0400
Subject:  some defines for Image metadata API

---
 include/gdiplusimaging.h |  273 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 273 insertions(+), 0 deletions(-)

diff --git a/include/gdiplusimaging.h b/include/gdiplusimaging.h
index 00ed3d1..4b9323c 100644
--- a/include/gdiplusimaging.h
+++ b/include/gdiplusimaging.h
@@ -84,6 +84,15 @@ public:
     UINT  Cookie;
 };
 
+class PropertyItem
+{
+public:
+    PROPID id;
+    ULONG  length;
+    WORD   type;
+    VOID*  value;
+};
+
 #else /* end of c++ typedefs */
 
 typedef enum ImageLockMode ImageLockMode;
@@ -140,6 +149,270 @@ typedef struct ImageItemData
     UINT  Cookie;
 } ImageItemData;
 
+typedef struct PropertyItem
+{
+    PROPID id;
+    ULONG  length;
+    WORD   type;
+    VOID*  value;
+} PropertyItem;
+
 #endif /* end of c typedefs */
 
+/* property types */
+#define PropertyTagTypeByte       1
+#define PropertyTagTypeASCII      2
+#define PropertyTagTypeShort      3
+#define PropertyTagTypeLong       4
+#define PropertyTagTypeRational   5
+#define PropertyTagTypeUndefined  7
+#define PropertyTagTypeSLONG      9
+#define PropertyTagTypeSRational 10
+
+/* property IDs */
+#define PropertyTagExifIFD             0x8769
+#define PropertyTagGpsIFD              0x8825
+
+#define PropertyTagNewSubfileType      0x00FE
+#define PropertyTagSubfileType         0x00FF
+#define PropertyTagImageWidth          0x0100
+#define PropertyTagImageHeight         0x0101
+#define PropertyTagBitsPerSample       0x0102
+#define PropertyTagCompression         0x0103
+#define PropertyTagPhotometricInterp   0x0106
+#define PropertyTagThreshHolding       0x0107
+#define PropertyTagCellWidth           0x0108
+#define PropertyTagCellHeight          0x0109
+#define PropertyTagFillOrder           0x010A
+#define PropertyTagDocumentName        0x010D
+#define PropertyTagImageDescription    0x010E
+#define PropertyTagEquipMake           0x010F
+#define PropertyTagEquipModel          0x0110
+#define PropertyTagStripOffsets        0x0111
+#define PropertyTagOrientation         0x0112
+#define PropertyTagSamplesPerPixel     0x0115
+#define PropertyTagRowsPerStrip        0x0116
+#define PropertyTagStripBytesCount     0x0117
+#define PropertyTagMinSampleValue      0x0118
+#define PropertyTagMaxSampleValue      0x0119
+#define PropertyTagXResolution         0x011A
+#define PropertyTagYResolution         0x011B
+#define PropertyTagPlanarConfig        0x011C
+#define PropertyTagPageName            0x011D
+#define PropertyTagXPosition           0x011E
+#define PropertyTagYPosition           0x011F
+#define PropertyTagFreeOffset          0x0120
+#define PropertyTagFreeByteCounts      0x0121
+#define PropertyTagGrayResponseUnit    0x0122
+#define PropertyTagGrayResponseCurve   0x0123
+#define PropertyTagT4Option            0x0124
+#define PropertyTagT6Option            0x0125
+#define PropertyTagResolutionUnit      0x0128
+#define PropertyTagPageNumber          0x0129
+#define PropertyTagTransferFuncition   0x012D
+#define PropertyTagSoftwareUsed        0x0131
+#define PropertyTagDateTime            0x0132
+#define PropertyTagArtist              0x013B
+#define PropertyTagHostComputer        0x013C
+#define PropertyTagPredictor           0x013D
+#define PropertyTagWhitePoint          0x013E
+#define PropertyTagPrimaryChromaticities 0x013F
+#define PropertyTagColorMap              0x0140
+#define PropertyTagHalftoneHints         0x0141
+#define PropertyTagTileWidth             0x0142
+#define PropertyTagTileLength            0x0143
+#define PropertyTagTileOffset            0x0144
+#define PropertyTagTileByteCounts        0x0145
+#define PropertyTagInkSet                0x014C
+#define PropertyTagInkNames              0x014D
+#define PropertyTagNumberOfInks          0x014E
+#define PropertyTagDotRange              0x0150
+#define PropertyTagTargetPrinter         0x0151
+#define PropertyTagExtraSamples          0x0152
+#define PropertyTagSampleFormat          0x0153
+#define PropertyTagSMinSampleValue       0x0154
+#define PropertyTagSMaxSampleValue       0x0155
+#define PropertyTagTransferRange         0x0156
+
+#define PropertyTagJPEGProc            0x0200
+#define PropertyTagJPEGInterFormat     0x0201
+#define PropertyTagJPEGInterLength     0x0202
+#define PropertyTagJPEGRestartInterval 0x0203
+#define PropertyTagJPEGLosslessPredictors  0x0205
+#define PropertyTagJPEGPointTransforms     0x0206
+#define PropertyTagJPEGQTables             0x0207
+#define PropertyTagJPEGDCTables            0x0208
+#define PropertyTagJPEGACTables            0x0209
+
+#define PropertyTagYCbCrCoefficients   0x0211
+#define PropertyTagYCbCrSubsampling    0x0212
+#define PropertyTagYCbCrPositioning    0x0213
+#define PropertyTagREFBlackWhite       0x0214
+
+#define PropertyTagICCProfile          0x8773
+
+#define PropertyTagGamma                0x0301
+#define PropertyTagICCProfileDescriptor 0x0302
+#define PropertyTagSRGBRenderingIntent  0x0303
+
+#define PropertyTagImageTitle          0x0320
+#define PropertyTagCopyright           0x8298
+
+#define PropertyTagResolutionXUnit           0x5001
+#define PropertyTagResolutionYUnit           0x5002
+#define PropertyTagResolutionXLengthUnit     0x5003
+#define PropertyTagResolutionYLengthUnit     0x5004
+#define PropertyTagPrintFlags                0x5005
+#define PropertyTagPrintFlagsVersion         0x5006
+#define PropertyTagPrintFlagsCrop            0x5007
+#define PropertyTagPrintFlagsBleedWidth      0x5008
+#define PropertyTagPrintFlagsBleedWidthScale 0x5009
+#define PropertyTagHalftoneLPI               0x500A
+#define PropertyTagHalftoneLPIUnit           0x500B
+#define PropertyTagHalftoneDegree            0x500C
+#define PropertyTagHalftoneShape             0x500D
+#define PropertyTagHalftoneMisc              0x500E
+#define PropertyTagHalftoneScreen            0x500F
+#define PropertyTagJPEGQuality               0x5010
+#define PropertyTagGridSize                  0x5011
+#define PropertyTagThumbnailFormat           0x5012
+#define PropertyTagThumbnailWidth            0x5013
+#define PropertyTagThumbnailHeight           0x5014
+#define PropertyTagThumbnailColorDepth       0x5015
+#define PropertyTagThumbnailPlanes           0x5016
+#define PropertyTagThumbnailRawBytes         0x5017
+#define PropertyTagThumbnailSize             0x5018
+#define PropertyTagThumbnailCompressedSize   0x5019
+#define PropertyTagColorTransferFunction     0x501A
+#define PropertyTagThumbnailData             0x501B
+                                                
+#define PropertyTagThumbnailImageWidth       0x5020
+#define PropertyTagThumbnailImageHeight      0x5021
+#define PropertyTagThumbnailBitsPerSample    0x5022
+
+#define PropertyTagThumbnailCompression       0x5023
+#define PropertyTagThumbnailPhotometricInterp 0x5024
+#define PropertyTagThumbnailImageDescription  0x5025
+#define PropertyTagThumbnailEquipMake         0x5026
+
+#define PropertyTagThumbnailEquipModel       0x5027
+
+#define PropertyTagThumbnailStripOffsets     0x5028
+#define PropertyTagThumbnailOrientation      0x5029
+#define PropertyTagThumbnailSamplesPerPixel  0x502A
+#define PropertyTagThumbnailRowsPerStrip     0x502B
+#define PropertyTagThumbnailStripBytesCount  0x502C
+
+#define PropertyTagThumbnailResolutionX      0x502D
+
+#define PropertyTagThumbnailResolutionY      0x502E
+
+#define PropertyTagThumbnailPlanarConfig     0x502F
+#define PropertyTagThumbnailResolutionUnit   0x5030
+
+#define PropertyTagThumbnailTransferFunction 0x5031
+#define PropertyTagThumbnailSoftwareUsed     0x5032
+#define PropertyTagThumbnailDateTime         0x5033
+
+#define PropertyTagThumbnailArtist           0x5034
+
+#define PropertyTagThumbnailWhitePoint            0x5035
+#define PropertyTagThumbnailPrimaryChromaticities 0x5036
+
+#define PropertyTagThumbnailYCbCrCoefficients 0x5037
+#define PropertyTagThumbnailYCbCrSubsampling  0x5038
+#define PropertyTagThumbnailYCbCrPositioning  0x5039
+#define PropertyTagThumbnailRefBlackWhite     0x503A
+
+#define PropertyTagThumbnailCopyRight 0x503B
+
+#define PropertyTagLuminanceTable    0x5090
+#define PropertyTagChrominanceTable  0x5091
+
+#define PropertyTagFrameDelay        0x5100
+#define PropertyTagLoopCount         0x5101
+
+#define PropertyTagPixelUnit         0x5110
+#define PropertyTagPixelPerUnitX     0x5111
+#define PropertyTagPixelPerUnitY     0x5112
+#define PropertyTagPaletteHistogram  0x5113
+
+
+#define PropertyTagExifExposureTime  0x829A
+#define PropertyTagExifFNumber       0x829D
+
+#define PropertyTagExifExposureProg  0x8822
+#define PropertyTagExifSpectralSense 0x8824
+#define PropertyTagExifISOSpeed      0x8827
+#define PropertyTagExifOECF          0x8828
+
+#define PropertyTagExifVer           0x9000
+#define PropertyTagExifDTOrig        0x9003
+#define PropertyTagExifDTDigitized   0x9004
+
+#define PropertyTagExifCompConfig    0x9101
+#define PropertyTagExifCompBPP       0x9102
+
+#define PropertyTagExifShutterSpeed  0x9201
+#define PropertyTagExifAperture      0x9202
+#define PropertyTagExifBrightness    0x9203
+#define PropertyTagExifExposureBias  0x9204
+#define PropertyTagExifMaxAperture   0x9205
+#define PropertyTagExifSubjectDist   0x9206
+#define PropertyTagExifMeteringMode  0x9207
+#define PropertyTagExifLightSource   0x9208
+#define PropertyTagExifFlash         0x9209
+#define PropertyTagExifFocalLength   0x920A
+#define PropertyTagExifMakerNote     0x927C
+#define PropertyTagExifUserComment   0x9286
+#define PropertyTagExifDTSubsec      0x9290
+#define PropertyTagExifDTOrigSS      0x9291
+#define PropertyTagExifDTDigSS       0x9292
+
+#define PropertyTagExifFPXVer        0xA000
+#define PropertyTagExifColorSpace    0xA001
+#define PropertyTagExifPixXDim       0xA002
+#define PropertyTagExifPixYDim       0xA003
+#define PropertyTagExifRelatedWav    0xA004
+#define PropertyTagExifInterop       0xA005
+#define PropertyTagExifFlashEnergy   0xA20B
+#define PropertyTagExifSpatialFR     0xA20C
+#define PropertyTagExifFocalXRes     0xA20E
+#define PropertyTagExifFocalYRes     0xA20F
+#define PropertyTagExifFocalResUnit  0xA210
+#define PropertyTagExifSubjectLoc    0xA214
+#define PropertyTagExifExposureIndex 0xA215
+#define PropertyTagExifSensingMethod 0xA217
+#define PropertyTagExifFileSource    0xA300
+#define PropertyTagExifSceneType     0xA301
+#define PropertyTagExifCfaPattern    0xA302
+
+#define PropertyTagGpsVer            0x0000
+#define PropertyTagGpsLatitudeRef    0x0001
+#define PropertyTagGpsLatitude       0x0002
+#define PropertyTagGpsLongitudeRef   0x0003
+#define PropertyTagGpsLongitude      0x0004
+#define PropertyTagGpsAltitudeRef    0x0005
+#define PropertyTagGpsAltitude       0x0006
+#define PropertyTagGpsGpsTime        0x0007
+#define PropertyTagGpsGpsSatellites  0x0008
+#define PropertyTagGpsGpsStatus      0x0009
+#define PropertyTagGpsGpsMeasureMode 0x000A
+#define PropertyTagGpsGpsDop         0x000B
+#define PropertyTagGpsSpeedRef       0x000C
+#define PropertyTagGpsSpeed          0x000D
+#define PropertyTagGpsTrackRef       0x000E
+#define PropertyTagGpsTrack          0x000F
+#define PropertyTagGpsImgDirRef      0x0010
+#define PropertyTagGpsImgDir         0x0011
+#define PropertyTagGpsMapDatum       0x0012
+#define PropertyTagGpsDestLatRef     0x0013
+#define PropertyTagGpsDestLat        0x0014
+#define PropertyTagGpsDestLongRef    0x0015
+#define PropertyTagGpsDestLong       0x0016
+#define PropertyTagGpsDestBearRef    0x0017
+#define PropertyTagGpsDestBear       0x0018
+#define PropertyTagGpsDestDistRef    0x0019
+#define PropertyTagGpsDestDist       0x001A
+
 #endif /* _GDIPLUSIMAGING_H */
-- 
1.4.4.4






More information about the wine-patches mailing list