ReactOS 0.4.15-dev-8021-g7ce96fd
gdiplusimaging.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2007 Google (Evan Stade)
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18
19#ifndef _GDIPLUSIMAGING_H
20#define _GDIPLUSIMAGING_H
21
22DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
23DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
24DEFINE_GUID(ImageFormatBMP, 0xb96b3cab, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
25DEFINE_GUID(ImageFormatEMF, 0xb96b3cac, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
26DEFINE_GUID(ImageFormatWMF, 0xb96b3cad, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
27DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
28DEFINE_GUID(ImageFormatPNG, 0xb96b3caf, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
29DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
30DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
31DEFINE_GUID(ImageFormatEXIF, 0xb96b3cb2, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
32DEFINE_GUID(ImageFormatIcon, 0xb96b3cb5, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e);
33
34DEFINE_GUID(FrameDimensionTime, 0x6aedbd6d, 0x3fb5, 0x418a, 0x83, 0xa6, 0x7f, 0x45, 0x22, 0x9d, 0xc8, 0x72);
35DEFINE_GUID(FrameDimensionPage, 0x7462dc86, 0x6180, 0x4c7e, 0x8e, 0x3f, 0xee, 0x73, 0x33, 0xa7, 0xa4, 0x83);
36DEFINE_GUID(FrameDimensionResolution, 0x84236f7b, 0x3bd3, 0x428f, 0x8d, 0xab, 0x4e, 0xa1, 0x43, 0x9c, 0xa3, 0x15);
37
39{
43};
44
46{
49
52
55
58
61
64
67
70};
71
72#ifdef __cplusplus
74{
75 public:
76 GUID Guid;
78 ULONG Type;
79 VOID *Value;
80};
81
83{
84 public:
85 UINT Count;
87};
88
90{
91 public:
94 const WCHAR *CodecName;
95 const WCHAR *DllName;
98 const WCHAR *MimeType;
103 const BYTE *SigPattern;
104 const BYTE *SigMask;
105};
106
107class BitmapData
108{
109 public:
110 UINT Width;
111 UINT Height;
112 INT Stride;
113 Gdiplus::PixelFormat PixelFormat;
114 VOID *Scan0;
116};
117
118class ImageItemData
119{
120 public:
121 UINT Size;
123 VOID *Desc;
125 VOID *Data;
127 UINT Cookie;
128};
129
130class PropertyItem
131{
132 public:
133 PROPID id;
135 WORD type;
136 VOID *value;
137};
138
139#else /* end of c++ typedefs */
140
143
144typedef struct EncoderParameter
145{
151
152typedef struct EncoderParameters
153{
157
158typedef struct ImageCodecInfo
159{
172 const BYTE *SigMask;
174
175typedef struct BitmapData
176{
182 UINT_PTR Reserved; /* undocumented: stores the lock mode */
184
185typedef struct ImageItemData
186{
195
196typedef struct PropertyItem
197{
203
204#endif /* end of c typedefs */
205
206/* property types */
207#define PropertyTagTypeByte 1
208#define PropertyTagTypeASCII 2
209#define PropertyTagTypeShort 3
210#define PropertyTagTypeLong 4
211#define PropertyTagTypeRational 5
212#define PropertyTagTypeUndefined 7
213#define PropertyTagTypeSLONG 9
214#define PropertyTagTypeSRational 10
215
216/* property IDs */
217#define PropertyTagExifIFD 0x8769
218#define PropertyTagGpsIFD 0x8825
219
220#define PropertyTagNewSubfileType 0x00FE
221#define PropertyTagSubfileType 0x00FF
222#define PropertyTagImageWidth 0x0100
223#define PropertyTagImageHeight 0x0101
224#define PropertyTagBitsPerSample 0x0102
225#define PropertyTagCompression 0x0103
226#define PropertyTagPhotometricInterp 0x0106
227#define PropertyTagThreshHolding 0x0107
228#define PropertyTagCellWidth 0x0108
229#define PropertyTagCellHeight 0x0109
230#define PropertyTagFillOrder 0x010A
231#define PropertyTagDocumentName 0x010D
232#define PropertyTagImageDescription 0x010E
233#define PropertyTagEquipMake 0x010F
234#define PropertyTagEquipModel 0x0110
235#define PropertyTagStripOffsets 0x0111
236#define PropertyTagOrientation 0x0112
237#define PropertyTagSamplesPerPixel 0x0115
238#define PropertyTagRowsPerStrip 0x0116
239#define PropertyTagStripBytesCount 0x0117
240#define PropertyTagMinSampleValue 0x0118
241#define PropertyTagMaxSampleValue 0x0119
242#define PropertyTagXResolution 0x011A
243#define PropertyTagYResolution 0x011B
244#define PropertyTagPlanarConfig 0x011C
245#define PropertyTagPageName 0x011D
246#define PropertyTagXPosition 0x011E
247#define PropertyTagYPosition 0x011F
248#define PropertyTagFreeOffset 0x0120
249#define PropertyTagFreeByteCounts 0x0121
250#define PropertyTagGrayResponseUnit 0x0122
251#define PropertyTagGrayResponseCurve 0x0123
252#define PropertyTagT4Option 0x0124
253#define PropertyTagT6Option 0x0125
254#define PropertyTagResolutionUnit 0x0128
255#define PropertyTagPageNumber 0x0129
256#define PropertyTagTransferFuncition 0x012D
257#define PropertyTagSoftwareUsed 0x0131
258#define PropertyTagDateTime 0x0132
259#define PropertyTagArtist 0x013B
260#define PropertyTagHostComputer 0x013C
261#define PropertyTagPredictor 0x013D
262#define PropertyTagWhitePoint 0x013E
263#define PropertyTagPrimaryChromaticities 0x013F
264#define PropertyTagColorMap 0x0140
265#define PropertyTagHalftoneHints 0x0141
266#define PropertyTagTileWidth 0x0142
267#define PropertyTagTileLength 0x0143
268#define PropertyTagTileOffset 0x0144
269#define PropertyTagTileByteCounts 0x0145
270#define PropertyTagInkSet 0x014C
271#define PropertyTagInkNames 0x014D
272#define PropertyTagNumberOfInks 0x014E
273#define PropertyTagDotRange 0x0150
274#define PropertyTagTargetPrinter 0x0151
275#define PropertyTagExtraSamples 0x0152
276#define PropertyTagSampleFormat 0x0153
277#define PropertyTagSMinSampleValue 0x0154
278#define PropertyTagSMaxSampleValue 0x0155
279#define PropertyTagTransferRange 0x0156
280
281#define PropertyTagJPEGProc 0x0200
282#define PropertyTagJPEGInterFormat 0x0201
283#define PropertyTagJPEGInterLength 0x0202
284#define PropertyTagJPEGRestartInterval 0x0203
285#define PropertyTagJPEGLosslessPredictors 0x0205
286#define PropertyTagJPEGPointTransforms 0x0206
287#define PropertyTagJPEGQTables 0x0207
288#define PropertyTagJPEGDCTables 0x0208
289#define PropertyTagJPEGACTables 0x0209
290
291#define PropertyTagYCbCrCoefficients 0x0211
292#define PropertyTagYCbCrSubsampling 0x0212
293#define PropertyTagYCbCrPositioning 0x0213
294#define PropertyTagREFBlackWhite 0x0214
295
296#define PropertyTagICCProfile 0x8773
297
298#define PropertyTagGamma 0x0301
299#define PropertyTagICCProfileDescriptor 0x0302
300#define PropertyTagSRGBRenderingIntent 0x0303
301
302#define PropertyTagImageTitle 0x0320
303#define PropertyTagCopyright 0x8298
304
305#define PropertyTagResolutionXUnit 0x5001
306#define PropertyTagResolutionYUnit 0x5002
307#define PropertyTagResolutionXLengthUnit 0x5003
308#define PropertyTagResolutionYLengthUnit 0x5004
309#define PropertyTagPrintFlags 0x5005
310#define PropertyTagPrintFlagsVersion 0x5006
311#define PropertyTagPrintFlagsCrop 0x5007
312#define PropertyTagPrintFlagsBleedWidth 0x5008
313#define PropertyTagPrintFlagsBleedWidthScale 0x5009
314#define PropertyTagHalftoneLPI 0x500A
315#define PropertyTagHalftoneLPIUnit 0x500B
316#define PropertyTagHalftoneDegree 0x500C
317#define PropertyTagHalftoneShape 0x500D
318#define PropertyTagHalftoneMisc 0x500E
319#define PropertyTagHalftoneScreen 0x500F
320#define PropertyTagJPEGQuality 0x5010
321#define PropertyTagGridSize 0x5011
322#define PropertyTagThumbnailFormat 0x5012
323#define PropertyTagThumbnailWidth 0x5013
324#define PropertyTagThumbnailHeight 0x5014
325#define PropertyTagThumbnailColorDepth 0x5015
326#define PropertyTagThumbnailPlanes 0x5016
327#define PropertyTagThumbnailRawBytes 0x5017
328#define PropertyTagThumbnailSize 0x5018
329#define PropertyTagThumbnailCompressedSize 0x5019
330#define PropertyTagColorTransferFunction 0x501A
331#define PropertyTagThumbnailData 0x501B
332
333#define PropertyTagThumbnailImageWidth 0x5020
334#define PropertyTagThumbnailImageHeight 0x5021
335#define PropertyTagThumbnailBitsPerSample 0x5022
336#define PropertyTagThumbnailCompression 0x5023
337#define PropertyTagThumbnailPhotometricInterp 0x5024
338#define PropertyTagThumbnailImageDescription 0x5025
339#define PropertyTagThumbnailEquipMake 0x5026
340#define PropertyTagThumbnailEquipModel 0x5027
341#define PropertyTagThumbnailStripOffsets 0x5028
342#define PropertyTagThumbnailOrientation 0x5029
343#define PropertyTagThumbnailSamplesPerPixel 0x502A
344#define PropertyTagThumbnailRowsPerStrip 0x502B
345#define PropertyTagThumbnailStripBytesCount 0x502C
346#define PropertyTagThumbnailResolutionX 0x502D
347#define PropertyTagThumbnailResolutionY 0x502E
348#define PropertyTagThumbnailPlanarConfig 0x502F
349#define PropertyTagThumbnailResolutionUnit 0x5030
350#define PropertyTagThumbnailTransferFunction 0x5031
351#define PropertyTagThumbnailSoftwareUsed 0x5032
352#define PropertyTagThumbnailDateTime 0x5033
353#define PropertyTagThumbnailArtist 0x5034
354#define PropertyTagThumbnailWhitePoint 0x5035
355#define PropertyTagThumbnailPrimaryChromaticities 0x5036
356#define PropertyTagThumbnailYCbCrCoefficients 0x5037
357#define PropertyTagThumbnailYCbCrSubsampling 0x5038
358#define PropertyTagThumbnailYCbCrPositioning 0x5039
359#define PropertyTagThumbnailRefBlackWhite 0x503A
360#define PropertyTagThumbnailCopyRight 0x503B
361
362#define PropertyTagLuminanceTable 0x5090
363#define PropertyTagChrominanceTable 0x5091
364
365#define PropertyTagFrameDelay 0x5100
366#define PropertyTagLoopCount 0x5101
367#define PropertyTagGlobalPalette 0x5102
368#define PropertyTagIndexBackground 0x5103
369#define PropertyTagIndexTransparent 0x5104
370
371#define PropertyTagPixelUnit 0x5110
372#define PropertyTagPixelPerUnitX 0x5111
373#define PropertyTagPixelPerUnitY 0x5112
374#define PropertyTagPaletteHistogram 0x5113
375
376#define PropertyTagExifExposureTime 0x829A
377#define PropertyTagExifFNumber 0x829D
378
379#define PropertyTagExifExposureProg 0x8822
380#define PropertyTagExifSpectralSense 0x8824
381#define PropertyTagExifISOSpeed 0x8827
382#define PropertyTagExifOECF 0x8828
383
384#define PropertyTagExifVer 0x9000
385#define PropertyTagExifDTOrig 0x9003
386#define PropertyTagExifDTDigitized 0x9004
387
388#define PropertyTagExifCompConfig 0x9101
389#define PropertyTagExifCompBPP 0x9102
390
391#define PropertyTagExifShutterSpeed 0x9201
392#define PropertyTagExifAperture 0x9202
393#define PropertyTagExifBrightness 0x9203
394#define PropertyTagExifExposureBias 0x9204
395#define PropertyTagExifMaxAperture 0x9205
396#define PropertyTagExifSubjectDist 0x9206
397#define PropertyTagExifMeteringMode 0x9207
398#define PropertyTagExifLightSource 0x9208
399#define PropertyTagExifFlash 0x9209
400#define PropertyTagExifFocalLength 0x920A
401#define PropertyTagExifMakerNote 0x927C
402#define PropertyTagExifUserComment 0x9286
403#define PropertyTagExifDTSubsec 0x9290
404#define PropertyTagExifDTOrigSS 0x9291
405#define PropertyTagExifDTDigSS 0x9292
406
407#define PropertyTagExifFPXVer 0xA000
408#define PropertyTagExifColorSpace 0xA001
409#define PropertyTagExifPixXDim 0xA002
410#define PropertyTagExifPixYDim 0xA003
411#define PropertyTagExifRelatedWav 0xA004
412#define PropertyTagExifInterop 0xA005
413#define PropertyTagExifFlashEnergy 0xA20B
414#define PropertyTagExifSpatialFR 0xA20C
415#define PropertyTagExifFocalXRes 0xA20E
416#define PropertyTagExifFocalYRes 0xA20F
417#define PropertyTagExifFocalResUnit 0xA210
418#define PropertyTagExifSubjectLoc 0xA214
419#define PropertyTagExifExposureIndex 0xA215
420#define PropertyTagExifSensingMethod 0xA217
421#define PropertyTagExifFileSource 0xA300
422#define PropertyTagExifSceneType 0xA301
423#define PropertyTagExifCfaPattern 0xA302
424
425#define PropertyTagGpsVer 0x0000
426#define PropertyTagGpsLatitudeRef 0x0001
427#define PropertyTagGpsLatitude 0x0002
428#define PropertyTagGpsLongitudeRef 0x0003
429#define PropertyTagGpsLongitude 0x0004
430#define PropertyTagGpsAltitudeRef 0x0005
431#define PropertyTagGpsAltitude 0x0006
432#define PropertyTagGpsGpsTime 0x0007
433#define PropertyTagGpsGpsSatellites 0x0008
434#define PropertyTagGpsGpsStatus 0x0009
435#define PropertyTagGpsGpsMeasureMode 0x000A
436#define PropertyTagGpsGpsDop 0x000B
437#define PropertyTagGpsSpeedRef 0x000C
438#define PropertyTagGpsSpeed 0x000D
439#define PropertyTagGpsTrackRef 0x000E
440#define PropertyTagGpsTrack 0x000F
441#define PropertyTagGpsImgDirRef 0x0010
442#define PropertyTagGpsImgDir 0x0011
443#define PropertyTagGpsMapDatum 0x0012
444#define PropertyTagGpsDestLatRef 0x0013
445#define PropertyTagGpsDestLat 0x0014
446#define PropertyTagGpsDestLongRef 0x0015
447#define PropertyTagGpsDestLong 0x0016
448#define PropertyTagGpsDestBearRef 0x0017
449#define PropertyTagGpsDestBear 0x0018
450#define PropertyTagGpsDestDistRef 0x0019
451#define PropertyTagGpsDestDist 0x001A
452
453#endif /* _GDIPLUSIMAGING_H */
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
ImageLockMode
@ ImageLockModeUserInputBuf
@ ImageLockModeRead
@ ImageLockModeWrite
RotateFlipType
@ RotateNoneFlipXY
@ Rotate90FlipY
@ Rotate270FlipY
@ Rotate180FlipY
@ Rotate270FlipX
@ RotateNoneFlipNone
@ Rotate180FlipNone
@ RotateNoneFlipY
@ Rotate270FlipNone
@ Rotate180FlipXY
@ Rotate90FlipXY
@ Rotate180FlipX
@ Rotate90FlipNone
@ Rotate270FlipXY
@ Rotate90FlipX
@ RotateNoneFlipX
INT PixelFormat
static const CLSID IPropertyStorage UINT *static const PROPSPEC PROPVARIANT *static UINT const PROPSPEC PROPVARIANT PROPID
Definition: shellole.c:78
unsigned __int3264 UINT_PTR
Definition: mstsclib_h.h:274
unsigned int UINT
Definition: ndis.h:50
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
Definition: guiddef.h:68
UINT_PTR Reserved
PixelFormat PixelFormat
const WCHAR * DllName
const WCHAR * CodecName
const BYTE * SigPattern
const BYTE * SigMask
const WCHAR * MimeType
const WCHAR * FilenameExtension
const WCHAR * FormatDescription
int32_t INT
Definition: typedefs.h:58
uint32_t ULONG
Definition: typedefs.h:59
_Inout_opt_ PVOID Parameter
Definition: rtltypes.h:323
__wchar_t WCHAR
Definition: xmlstorage.h:180
unsigned char BYTE
Definition: xxhash.c:193