1 /* 2 * GdiPlusEffects.h 3 * 4 * Windows GDI+ 5 * 6 * This file is part of the w32api package. 7 * 8 * THIS SOFTWARE IS NOT COPYRIGHTED 9 * 10 * This source code is offered for use in the public domain. You may 11 * use, modify or distribute it freely. 12 * 13 * This code is distributed in the hope that it will be useful but 14 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 15 * DISCLAIMED. This includes but is not limited to warranties of 16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17 */ 18 19 #ifndef _GDIPLUSEFFECTS_H 20 #define _GDIPLUSEFFECTS_H 21 22 typedef enum CurveAdjustments 23 { 24 AdjustExposure = 0, 25 AdjustDensity = 1, 26 AdjustContrast = 2, 27 AdjustHighlight = 3, 28 AdjustShadow = 4, 29 AdjustMidtone = 5, 30 AdjustWhiteSaturation = 6, 31 AdjustBlackSaturation = 7 32 } CurveAdjustments; 33 34 typedef enum CurveChannel 35 { 36 CurveChannelAll = 0, 37 CurveChannelRed = 1, 38 CurveChannelGreen = 2, 39 CurveChannelBlue = 3 40 } CurveChannel; 41 42 typedef struct BlurParams 43 { 44 REAL radius; 45 BOOL expandEdge; 46 } BlurParams; 47 48 typedef struct BrightnessContrastParams 49 { 50 INT brightnessLevel; 51 INT contrastLevel; 52 } BrightnessContrastParams; 53 54 typedef struct ColorBalanceParams 55 { 56 INT cyanRed; 57 INT magentaGreen; 58 INT yellowBlue; 59 } ColorBalanceParams; 60 61 typedef struct ColorCurveParams 62 { 63 CurveAdjustments adjustment; 64 CurveChannel channel; 65 INT adjustValue; 66 } ColorCurveParams; 67 68 typedef struct ColorLUTParams 69 { 70 ColorChannelLUT lutB; 71 ColorChannelLUT lutG; 72 ColorChannelLUT lutR; 73 ColorChannelLUT lutA; 74 } ColorLUTParams; 75 76 typedef struct HueSaturationLightnessParams 77 { 78 INT hueLevel; 79 INT saturationLevel; 80 INT lightnessLevel; 81 } HueSaturationLightnessParams; 82 83 typedef struct LevelsParams 84 { 85 INT highlight; 86 INT midtone; 87 INT shadow; 88 } LevelsParams; 89 90 typedef struct RedEyeCorrectionParams 91 { 92 UINT numberOfAreas; 93 RECT *areas; 94 } RedEyeCorrectionParams; 95 96 typedef struct SharpenParams 97 { 98 REAL radius; 99 REAL amount; 100 } SharpenParams; 101 102 typedef struct TintParams 103 { 104 INT hue; 105 INT amount; 106 } TintParams; 107 108 class Effect 109 { 110 public: 111 Effect() 112 { 113 } 114 115 VOID * 116 GetAuxData() const 117 { 118 return NULL; 119 } 120 121 INT 122 GetAuxDataSize() 123 { 124 return 0; 125 } 126 127 Status 128 GetParameterSize(UINT *size) 129 { 130 return NotImplemented; 131 } 132 133 VOID 134 UseAuxData(const BOOL useAuxDataFlag) 135 { 136 } 137 }; 138 139 class Blur : public Effect 140 { 141 public: 142 Blur() 143 { 144 } 145 146 Status 147 GetParameters(UINT *size, BlurParams *parameters) 148 { 149 return NotImplemented; 150 } 151 152 Status 153 SetParameters(const BlurParams *parameters) 154 { 155 return NotImplemented; 156 } 157 }; 158 159 class BrightnessContrast : public Effect 160 { 161 public: 162 BrightnessContrast() 163 { 164 } 165 166 Status 167 GetParameters(UINT *size, BrightnessContrastParams *parameters) 168 { 169 return NotImplemented; 170 } 171 172 Status 173 SetParameters(const BrightnessContrastParams *parameters) 174 { 175 return NotImplemented; 176 } 177 }; 178 179 class ColorBalance : public Effect 180 { 181 public: 182 ColorBalance() 183 { 184 } 185 186 Status 187 GetParameters(UINT *size, ColorBalanceParams *parameters) 188 { 189 return NotImplemented; 190 } 191 192 Status 193 SetParameters(ColorBalanceParams *parameters) 194 { 195 return NotImplemented; 196 } 197 }; 198 199 class ColorCurve : public Effect 200 { 201 public: 202 ColorCurve() 203 { 204 } 205 206 Status 207 GetParameters(UINT *size, ColorCurveParams *parameters) 208 { 209 return NotImplemented; 210 } 211 212 Status 213 SetParameters(const ColorCurveParams *parameters) 214 { 215 return NotImplemented; 216 } 217 }; 218 219 class ColorMatrixEffect : public Effect 220 { 221 public: 222 ColorMatrixEffect() 223 { 224 } 225 226 Status 227 GetParameters(UINT *size, ColorMatrix *matrix) 228 { 229 return NotImplemented; 230 } 231 232 Status 233 SetParameters(const ColorMatrix *matrix) 234 { 235 return NotImplemented; 236 } 237 }; 238 239 class HueSaturationLightness : public Effect 240 { 241 public: 242 HueSaturationLightness() 243 { 244 } 245 246 Status 247 GetParameters(UINT *size, HueSaturationLightnessParams *parameters) 248 { 249 return NotImplemented; 250 } 251 252 Status 253 SetParameters(const HueSaturationLightnessParams *parameters) 254 { 255 return NotImplemented; 256 } 257 }; 258 259 class Levels : public Effect 260 { 261 public: 262 Levels() 263 { 264 } 265 266 Status 267 GetParameters(UINT *size, LevelsParams *parameters) 268 { 269 return NotImplemented; 270 } 271 272 Status 273 SetParameters(const LevelsParams *parameters) 274 { 275 return NotImplemented; 276 } 277 }; 278 279 class RedEyeCorrection : public Effect 280 { 281 public: 282 RedEyeCorrection() 283 { 284 } 285 286 Status 287 GetParameters(UINT *size, RedEyeCorrectionParams *parameters) 288 { 289 return NotImplemented; 290 } 291 292 Status 293 SetParameters(const RedEyeCorrectionParams *parameters) 294 { 295 return NotImplemented; 296 } 297 }; 298 299 class Sharpen 300 { 301 public: 302 Sharpen() 303 { 304 } 305 306 Status 307 GetParameters(UINT *size, SharpenParams *parameters) 308 { 309 return NotImplemented; 310 } 311 312 Status 313 SetParameters(const SharpenParams *parameters) 314 { 315 return NotImplemented; 316 } 317 }; 318 319 class Tint : Effect 320 { 321 public: 322 Tint() 323 { 324 } 325 326 Status 327 GetParameters(UINT *size, TintParams *parameters) 328 { 329 return NotImplemented; 330 } 331 332 Status 333 SetParameters(const TintParams *parameters) 334 { 335 return NotImplemented; 336 } 337 }; 338 339 #endif /* _GDIPLUSEFFECTS_H */ 340