Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygengdiplusimaging.h
Go to the documentation of this file.
00001 /* 00002 * Copyright (C) 2007 Google (Evan Stade) 00003 * 00004 * This library is free software; you can redistribute it and/or 00005 * modify it under the terms of the GNU Lesser General Public 00006 * License as published by the Free Software Foundation; either 00007 * version 2.1 of the License, or (at your option) any later version. 00008 * 00009 * This library is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 * Lesser General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU Lesser General Public 00015 * License along with this library; if not, write to the Free Software 00016 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA 00017 */ 00018 00019 #ifndef _GDIPLUSIMAGING_H 00020 #define _GDIPLUSIMAGING_H 00021 00022 DEFINE_GUID(ImageFormatUndefined, 0xb96b3ca9, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00023 DEFINE_GUID(ImageFormatMemoryBMP, 0xb96b3caa, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00024 DEFINE_GUID(ImageFormatBMP, 0xb96b3cab, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00025 DEFINE_GUID(ImageFormatEMF, 0xb96b3cac, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00026 DEFINE_GUID(ImageFormatWMF, 0xb96b3cad, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00027 DEFINE_GUID(ImageFormatJPEG, 0xb96b3cae, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00028 DEFINE_GUID(ImageFormatPNG, 0xb96b3caf, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00029 DEFINE_GUID(ImageFormatGIF, 0xb96b3cb0, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00030 DEFINE_GUID(ImageFormatTIFF, 0xb96b3cb1, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00031 DEFINE_GUID(ImageFormatEXIF, 0xb96b3cb2, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00032 DEFINE_GUID(ImageFormatIcon, 0xb96b3cb5, 0x728, 0x11d3, 0x9d, 0x7b, 0, 0, 0xf8, 0x1e, 0xf3, 0x2e); 00033 00034 DEFINE_GUID(FrameDimensionTime, 0x6aedbd6d, 0x3fb5, 0x418a, 0x83, 0xa6, 0x7f, 0x45, 0x22, 0x9d, 0xc8, 0x72); 00035 DEFINE_GUID(FrameDimensionPage, 0x7462dc86, 0x6180, 0x4c7e, 0x8e, 0x3f, 0xee, 0x73, 0x33, 0xa7, 0xa4, 0x83); 00036 DEFINE_GUID(FrameDimensionResolution, 0x84236f7b, 0x3bd3, 0x428f, 0x8d, 0xab, 0x4e, 0xa1, 0x43, 0x9c, 0xa3, 0x15); 00037 00038 enum ImageLockMode 00039 { 00040 ImageLockModeRead = 1, 00041 ImageLockModeWrite = 2, 00042 ImageLockModeUserInputBuf = 4 00043 }; 00044 00045 enum RotateFlipType 00046 { 00047 RotateNoneFlipNone = 0, 00048 Rotate180FlipXY = RotateNoneFlipNone, 00049 00050 Rotate90FlipNone = 1, 00051 Rotate270FlipXY = Rotate90FlipNone, 00052 00053 Rotate180FlipNone = 2, 00054 RotateNoneFlipXY = Rotate180FlipNone, 00055 00056 Rotate270FlipNone = 3, 00057 Rotate90FlipXY = Rotate270FlipNone, 00058 00059 RotateNoneFlipX = 4, 00060 Rotate180FlipY = RotateNoneFlipX, 00061 00062 Rotate90FlipX = 5, 00063 Rotate270FlipY = Rotate90FlipX, 00064 00065 Rotate180FlipX = 6, 00066 RotateNoneFlipY = Rotate180FlipX, 00067 00068 Rotate270FlipX = 7, 00069 Rotate90FlipY = Rotate270FlipX 00070 }; 00071 00072 #ifdef __cplusplus 00073 class EncoderParameter 00074 { 00075 public: 00076 GUID Guid; 00077 ULONG NumberOfValues; 00078 ULONG Type; 00079 VOID* Value; 00080 }; 00081 00082 class EncoderParameters 00083 { 00084 public: 00085 UINT Count; 00086 EncoderParameter Parameter[1]; 00087 }; 00088 00089 class ImageCodecInfo 00090 { 00091 public: 00092 CLSID Clsid; 00093 GUID FormatID; 00094 const WCHAR* CodecName; 00095 const WCHAR* DllName; 00096 const WCHAR* FormatDescription; 00097 const WCHAR* FilenameExtension; 00098 const WCHAR* MimeType; 00099 DWORD Flags; 00100 DWORD Version; 00101 DWORD SigCount; 00102 DWORD SigSize; 00103 const BYTE* SigPattern; 00104 const BYTE* SigMask; 00105 }; 00106 00107 class BitmapData 00108 { 00109 public: 00110 UINT Width; 00111 UINT Height; 00112 INT Stride; 00113 Gdiplus::PixelFormat PixelFormat; 00114 VOID* Scan0; 00115 UINT_PTR Reserved; 00116 }; 00117 00118 class ImageItemData 00119 { 00120 public: 00121 UINT Size; 00122 UINT Position; 00123 VOID* Desc; 00124 UINT DescSize; 00125 VOID* Data; 00126 UINT DataSize; 00127 UINT Cookie; 00128 }; 00129 00130 class PropertyItem 00131 { 00132 public: 00133 PROPID id; 00134 ULONG length; 00135 WORD type; 00136 VOID* value; 00137 }; 00138 00139 #else /* end of c++ typedefs */ 00140 00141 typedef enum ImageLockMode ImageLockMode; 00142 typedef enum RotateFlipType RotateFlipType; 00143 00144 typedef struct EncoderParameter 00145 { 00146 GUID Guid; 00147 ULONG NumberOfValues; 00148 ULONG Type; 00149 VOID* Value; 00150 } EncoderParameter; 00151 00152 typedef struct EncoderParameters 00153 { 00154 UINT Count; 00155 EncoderParameter Parameter[1]; 00156 } EncoderParameters; 00157 00158 typedef struct ImageCodecInfo 00159 { 00160 CLSID Clsid; 00161 GUID FormatID; 00162 const WCHAR* CodecName; 00163 const WCHAR* DllName; 00164 const WCHAR* FormatDescription; 00165 const WCHAR* FilenameExtension; 00166 const WCHAR* MimeType; 00167 DWORD Flags; 00168 DWORD Version; 00169 DWORD SigCount; 00170 DWORD SigSize; 00171 const BYTE* SigPattern; 00172 const BYTE* SigMask; 00173 } ImageCodecInfo; 00174 00175 typedef struct BitmapData 00176 { 00177 UINT Width; 00178 UINT Height; 00179 INT Stride; 00180 PixelFormat PixelFormat; 00181 VOID* Scan0; 00182 UINT_PTR Reserved; /* undocumented: stores the lock mode */ 00183 } BitmapData; 00184 00185 typedef struct ImageItemData 00186 { 00187 UINT Size; 00188 UINT Position; 00189 VOID* Desc; 00190 UINT DescSize; 00191 VOID* Data; 00192 UINT DataSize; 00193 UINT Cookie; 00194 } ImageItemData; 00195 00196 typedef struct PropertyItem 00197 { 00198 PROPID id; 00199 ULONG length; 00200 WORD type; 00201 VOID* value; 00202 } PropertyItem; 00203 00204 #endif /* end of c typedefs */ 00205 00206 /* property types */ 00207 #define PropertyTagTypeByte 1 00208 #define PropertyTagTypeASCII 2 00209 #define PropertyTagTypeShort 3 00210 #define PropertyTagTypeLong 4 00211 #define PropertyTagTypeRational 5 00212 #define PropertyTagTypeUndefined 7 00213 #define PropertyTagTypeSLONG 9 00214 #define PropertyTagTypeSRational 10 00215 00216 /* property IDs */ 00217 #define PropertyTagExifIFD 0x8769 00218 #define PropertyTagGpsIFD 0x8825 00219 00220 #define PropertyTagNewSubfileType 0x00FE 00221 #define PropertyTagSubfileType 0x00FF 00222 #define PropertyTagImageWidth 0x0100 00223 #define PropertyTagImageHeight 0x0101 00224 #define PropertyTagBitsPerSample 0x0102 00225 #define PropertyTagCompression 0x0103 00226 #define PropertyTagPhotometricInterp 0x0106 00227 #define PropertyTagThreshHolding 0x0107 00228 #define PropertyTagCellWidth 0x0108 00229 #define PropertyTagCellHeight 0x0109 00230 #define PropertyTagFillOrder 0x010A 00231 #define PropertyTagDocumentName 0x010D 00232 #define PropertyTagImageDescription 0x010E 00233 #define PropertyTagEquipMake 0x010F 00234 #define PropertyTagEquipModel 0x0110 00235 #define PropertyTagStripOffsets 0x0111 00236 #define PropertyTagOrientation 0x0112 00237 #define PropertyTagSamplesPerPixel 0x0115 00238 #define PropertyTagRowsPerStrip 0x0116 00239 #define PropertyTagStripBytesCount 0x0117 00240 #define PropertyTagMinSampleValue 0x0118 00241 #define PropertyTagMaxSampleValue 0x0119 00242 #define PropertyTagXResolution 0x011A 00243 #define PropertyTagYResolution 0x011B 00244 #define PropertyTagPlanarConfig 0x011C 00245 #define PropertyTagPageName 0x011D 00246 #define PropertyTagXPosition 0x011E 00247 #define PropertyTagYPosition 0x011F 00248 #define PropertyTagFreeOffset 0x0120 00249 #define PropertyTagFreeByteCounts 0x0121 00250 #define PropertyTagGrayResponseUnit 0x0122 00251 #define PropertyTagGrayResponseCurve 0x0123 00252 #define PropertyTagT4Option 0x0124 00253 #define PropertyTagT6Option 0x0125 00254 #define PropertyTagResolutionUnit 0x0128 00255 #define PropertyTagPageNumber 0x0129 00256 #define PropertyTagTransferFuncition 0x012D 00257 #define PropertyTagSoftwareUsed 0x0131 00258 #define PropertyTagDateTime 0x0132 00259 #define PropertyTagArtist 0x013B 00260 #define PropertyTagHostComputer 0x013C 00261 #define PropertyTagPredictor 0x013D 00262 #define PropertyTagWhitePoint 0x013E 00263 #define PropertyTagPrimaryChromaticities 0x013F 00264 #define PropertyTagColorMap 0x0140 00265 #define PropertyTagHalftoneHints 0x0141 00266 #define PropertyTagTileWidth 0x0142 00267 #define PropertyTagTileLength 0x0143 00268 #define PropertyTagTileOffset 0x0144 00269 #define PropertyTagTileByteCounts 0x0145 00270 #define PropertyTagInkSet 0x014C 00271 #define PropertyTagInkNames 0x014D 00272 #define PropertyTagNumberOfInks 0x014E 00273 #define PropertyTagDotRange 0x0150 00274 #define PropertyTagTargetPrinter 0x0151 00275 #define PropertyTagExtraSamples 0x0152 00276 #define PropertyTagSampleFormat 0x0153 00277 #define PropertyTagSMinSampleValue 0x0154 00278 #define PropertyTagSMaxSampleValue 0x0155 00279 #define PropertyTagTransferRange 0x0156 00280 00281 #define PropertyTagJPEGProc 0x0200 00282 #define PropertyTagJPEGInterFormat 0x0201 00283 #define PropertyTagJPEGInterLength 0x0202 00284 #define PropertyTagJPEGRestartInterval 0x0203 00285 #define PropertyTagJPEGLosslessPredictors 0x0205 00286 #define PropertyTagJPEGPointTransforms 0x0206 00287 #define PropertyTagJPEGQTables 0x0207 00288 #define PropertyTagJPEGDCTables 0x0208 00289 #define PropertyTagJPEGACTables 0x0209 00290 00291 #define PropertyTagYCbCrCoefficients 0x0211 00292 #define PropertyTagYCbCrSubsampling 0x0212 00293 #define PropertyTagYCbCrPositioning 0x0213 00294 #define PropertyTagREFBlackWhite 0x0214 00295 00296 #define PropertyTagICCProfile 0x8773 00297 00298 #define PropertyTagGamma 0x0301 00299 #define PropertyTagICCProfileDescriptor 0x0302 00300 #define PropertyTagSRGBRenderingIntent 0x0303 00301 00302 #define PropertyTagImageTitle 0x0320 00303 #define PropertyTagCopyright 0x8298 00304 00305 #define PropertyTagResolutionXUnit 0x5001 00306 #define PropertyTagResolutionYUnit 0x5002 00307 #define PropertyTagResolutionXLengthUnit 0x5003 00308 #define PropertyTagResolutionYLengthUnit 0x5004 00309 #define PropertyTagPrintFlags 0x5005 00310 #define PropertyTagPrintFlagsVersion 0x5006 00311 #define PropertyTagPrintFlagsCrop 0x5007 00312 #define PropertyTagPrintFlagsBleedWidth 0x5008 00313 #define PropertyTagPrintFlagsBleedWidthScale 0x5009 00314 #define PropertyTagHalftoneLPI 0x500A 00315 #define PropertyTagHalftoneLPIUnit 0x500B 00316 #define PropertyTagHalftoneDegree 0x500C 00317 #define PropertyTagHalftoneShape 0x500D 00318 #define PropertyTagHalftoneMisc 0x500E 00319 #define PropertyTagHalftoneScreen 0x500F 00320 #define PropertyTagJPEGQuality 0x5010 00321 #define PropertyTagGridSize 0x5011 00322 #define PropertyTagThumbnailFormat 0x5012 00323 #define PropertyTagThumbnailWidth 0x5013 00324 #define PropertyTagThumbnailHeight 0x5014 00325 #define PropertyTagThumbnailColorDepth 0x5015 00326 #define PropertyTagThumbnailPlanes 0x5016 00327 #define PropertyTagThumbnailRawBytes 0x5017 00328 #define PropertyTagThumbnailSize 0x5018 00329 #define PropertyTagThumbnailCompressedSize 0x5019 00330 #define PropertyTagColorTransferFunction 0x501A 00331 #define PropertyTagThumbnailData 0x501B 00332 00333 #define PropertyTagThumbnailImageWidth 0x5020 00334 #define PropertyTagThumbnailImageHeight 0x5021 00335 #define PropertyTagThumbnailBitsPerSample 0x5022 00336 #define PropertyTagThumbnailCompression 0x5023 00337 #define PropertyTagThumbnailPhotometricInterp 0x5024 00338 #define PropertyTagThumbnailImageDescription 0x5025 00339 #define PropertyTagThumbnailEquipMake 0x5026 00340 #define PropertyTagThumbnailEquipModel 0x5027 00341 #define PropertyTagThumbnailStripOffsets 0x5028 00342 #define PropertyTagThumbnailOrientation 0x5029 00343 #define PropertyTagThumbnailSamplesPerPixel 0x502A 00344 #define PropertyTagThumbnailRowsPerStrip 0x502B 00345 #define PropertyTagThumbnailStripBytesCount 0x502C 00346 #define PropertyTagThumbnailResolutionX 0x502D 00347 #define PropertyTagThumbnailResolutionY 0x502E 00348 #define PropertyTagThumbnailPlanarConfig 0x502F 00349 #define PropertyTagThumbnailResolutionUnit 0x5030 00350 #define PropertyTagThumbnailTransferFunction 0x5031 00351 #define PropertyTagThumbnailSoftwareUsed 0x5032 00352 #define PropertyTagThumbnailDateTime 0x5033 00353 #define PropertyTagThumbnailArtist 0x5034 00354 #define PropertyTagThumbnailWhitePoint 0x5035 00355 #define PropertyTagThumbnailPrimaryChromaticities 0x5036 00356 #define PropertyTagThumbnailYCbCrCoefficients 0x5037 00357 #define PropertyTagThumbnailYCbCrSubsampling 0x5038 00358 #define PropertyTagThumbnailYCbCrPositioning 0x5039 00359 #define PropertyTagThumbnailRefBlackWhite 0x503A 00360 #define PropertyTagThumbnailCopyRight 0x503B 00361 00362 #define PropertyTagLuminanceTable 0x5090 00363 #define PropertyTagChrominanceTable 0x5091 00364 00365 #define PropertyTagFrameDelay 0x5100 00366 #define PropertyTagLoopCount 0x5101 00367 00368 #define PropertyTagPixelUnit 0x5110 00369 #define PropertyTagPixelPerUnitX 0x5111 00370 #define PropertyTagPixelPerUnitY 0x5112 00371 #define PropertyTagPaletteHistogram 0x5113 00372 00373 #define PropertyTagExifExposureTime 0x829A 00374 #define PropertyTagExifFNumber 0x829D 00375 00376 #define PropertyTagExifExposureProg 0x8822 00377 #define PropertyTagExifSpectralSense 0x8824 00378 #define PropertyTagExifISOSpeed 0x8827 00379 #define PropertyTagExifOECF 0x8828 00380 00381 #define PropertyTagExifVer 0x9000 00382 #define PropertyTagExifDTOrig 0x9003 00383 #define PropertyTagExifDTDigitized 0x9004 00384 00385 #define PropertyTagExifCompConfig 0x9101 00386 #define PropertyTagExifCompBPP 0x9102 00387 00388 #define PropertyTagExifShutterSpeed 0x9201 00389 #define PropertyTagExifAperture 0x9202 00390 #define PropertyTagExifBrightness 0x9203 00391 #define PropertyTagExifExposureBias 0x9204 00392 #define PropertyTagExifMaxAperture 0x9205 00393 #define PropertyTagExifSubjectDist 0x9206 00394 #define PropertyTagExifMeteringMode 0x9207 00395 #define PropertyTagExifLightSource 0x9208 00396 #define PropertyTagExifFlash 0x9209 00397 #define PropertyTagExifFocalLength 0x920A 00398 #define PropertyTagExifMakerNote 0x927C 00399 #define PropertyTagExifUserComment 0x9286 00400 #define PropertyTagExifDTSubsec 0x9290 00401 #define PropertyTagExifDTOrigSS 0x9291 00402 #define PropertyTagExifDTDigSS 0x9292 00403 00404 #define PropertyTagExifFPXVer 0xA000 00405 #define PropertyTagExifColorSpace 0xA001 00406 #define PropertyTagExifPixXDim 0xA002 00407 #define PropertyTagExifPixYDim 0xA003 00408 #define PropertyTagExifRelatedWav 0xA004 00409 #define PropertyTagExifInterop 0xA005 00410 #define PropertyTagExifFlashEnergy 0xA20B 00411 #define PropertyTagExifSpatialFR 0xA20C 00412 #define PropertyTagExifFocalXRes 0xA20E 00413 #define PropertyTagExifFocalYRes 0xA20F 00414 #define PropertyTagExifFocalResUnit 0xA210 00415 #define PropertyTagExifSubjectLoc 0xA214 00416 #define PropertyTagExifExposureIndex 0xA215 00417 #define PropertyTagExifSensingMethod 0xA217 00418 #define PropertyTagExifFileSource 0xA300 00419 #define PropertyTagExifSceneType 0xA301 00420 #define PropertyTagExifCfaPattern 0xA302 00421 00422 #define PropertyTagGpsVer 0x0000 00423 #define PropertyTagGpsLatitudeRef 0x0001 00424 #define PropertyTagGpsLatitude 0x0002 00425 #define PropertyTagGpsLongitudeRef 0x0003 00426 #define PropertyTagGpsLongitude 0x0004 00427 #define PropertyTagGpsAltitudeRef 0x0005 00428 #define PropertyTagGpsAltitude 0x0006 00429 #define PropertyTagGpsGpsTime 0x0007 00430 #define PropertyTagGpsGpsSatellites 0x0008 00431 #define PropertyTagGpsGpsStatus 0x0009 00432 #define PropertyTagGpsGpsMeasureMode 0x000A 00433 #define PropertyTagGpsGpsDop 0x000B 00434 #define PropertyTagGpsSpeedRef 0x000C 00435 #define PropertyTagGpsSpeed 0x000D 00436 #define PropertyTagGpsTrackRef 0x000E 00437 #define PropertyTagGpsTrack 0x000F 00438 #define PropertyTagGpsImgDirRef 0x0010 00439 #define PropertyTagGpsImgDir 0x0011 00440 #define PropertyTagGpsMapDatum 0x0012 00441 #define PropertyTagGpsDestLatRef 0x0013 00442 #define PropertyTagGpsDestLat 0x0014 00443 #define PropertyTagGpsDestLongRef 0x0015 00444 #define PropertyTagGpsDestLong 0x0016 00445 #define PropertyTagGpsDestBearRef 0x0017 00446 #define PropertyTagGpsDestBear 0x0018 00447 #define PropertyTagGpsDestDistRef 0x0019 00448 #define PropertyTagGpsDestDist 0x001A 00449 00450 #endif /* _GDIPLUSIMAGING_H */ Generated on Mon May 28 2012 04:31:19 for ReactOS by
1.7.6.1
|