• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * gdipluseffects.h
3  *
4  * GDI+ filters and effects
5  *
6  * This file is part of the w32api package.
7  *
8  * Contributors:
9  *   Created by Markus Koenig <markus@stber-koenig.de>
10  *
11  * THIS SOFTWARE IS NOT COPYRIGHTED
12  *
13  * This source code is offered for use in the public domain. You may
14  * use, modify or distribute it freely.
15  *
16  * This code is distributed in the hope that it will be useful but
17  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18  * DISCLAIMED. This includes but is not limited to warranties of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20  *
21  */
22 
23 #ifndef __GDIPLUS_EFFECTS_H
24 #define __GDIPLUS_EFFECTS_H
25 #if __GNUC__ >=3
26 #pragma GCC system_header
27 #endif
28 
29 typedef enum CurveAdjustments {
30 	AdjustExposure = 0,
31 	AdjustDensity = 1,
32 	AdjustContrast = 2,
33 	AdjustHighlight = 3,
34 	AdjustShadow = 4,
35 	AdjustMidtone = 5,
36 	AdjustWhiteSaturation = 6,
37 	AdjustBlackSaturation = 7
38 } CurveAdjustments;
39 
40 typedef enum CurveChannel {
41 	CurveChannelAll = 0,
42 	CurveChannelRed = 1,
43 	CurveChannelGreen = 2,
44 	CurveChannelBlue = 3
45 } CurveChannel;
46 
47 typedef struct BlurParams {
48 	REAL radius;
49 	BOOL expandEdge;
50 } BlurParams;
51 
52 typedef struct BrightnessContrastParams {
53 	INT brightnessLevel;
54 	INT contrastLevel;
55 } BrightnessContrastParams;
56 
57 typedef struct ColorBalanceParams {
58 	INT cyanRed;
59 	INT magentaGreen;
60 	INT yellowBlue;
61 } ColorBalanceParams;
62 
63 typedef struct ColorCurveParams {
64 	CurveAdjustments adjustment;
65 	CurveChannel channel;
66 	INT adjustValue;
67 } ColorCurveParams;
68 
69 typedef struct ColorLUTParams {
70 	ColorChannelLUT lutB;
71 	ColorChannelLUT lutG;
72 	ColorChannelLUT lutR;
73 	ColorChannelLUT lutA;
74 } ColorLUTParams;
75 
76 typedef struct HueSaturationLightnessParams {
77 	INT hueLevel;
78 	INT saturationLevel;
79 	INT lightnessLevel;
80 } HueSaturationLightnessParams;
81 
82 typedef struct LevelsParams {
83 	INT highlight;
84 	INT midtone;
85 	INT shadow;
86 } LevelsParams;
87 
88 typedef struct RedEyeCorrectionParams {
89 	UINT numberOfAreas;
90 	RECT *areas;
91 } RedEyeCorrectionParams;
92 
93 typedef struct SharpenParams {
94 	REAL radius;
95 	REAL amount;
96 } SharpenParams;
97 
98 typedef struct TintParams {
99 	INT hue;
100 	INT amount;
101 } TintParams;
102 
103 extern const GUID BlurEffectGuid;                    /* ? */
104 extern const GUID BrightnessContrastEffectGuid;      /* ? */
105 extern const GUID ColorBalanceEffectGuid;            /* ? */
106 extern const GUID ColorCurveEffectGuid;              /* ? */
107 extern const GUID ColorLUTEffectGuid;                /* ? */
108 extern const GUID ColorMatrixEffectGuid;             /* ? */
109 extern const GUID HueSaturationLightnessEffectGuid;  /* ? */
110 extern const GUID LevelsEffectGuid;                  /* ? */
111 extern const GUID RedEyeCorrectionEffectGuid;        /* ? */
112 extern const GUID SharpenEffectGuid;                 /* ? */
113 extern const GUID TintEffectGuid;                    /* ? */
114 
115 
116 #endif /* __GDIPLUS_EFFECTS_H */
117