master
  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
 29typedef 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
 40typedef enum CurveChannel {
 41	CurveChannelAll = 0,
 42	CurveChannelRed = 1,
 43	CurveChannelGreen = 2,
 44	CurveChannelBlue = 3
 45} CurveChannel;
 46
 47typedef struct BlurParams {
 48	REAL radius;
 49	BOOL expandEdge;
 50} BlurParams;
 51
 52typedef struct BrightnessContrastParams {
 53	INT brightnessLevel;
 54	INT contrastLevel;
 55} BrightnessContrastParams;
 56
 57typedef struct ColorBalanceParams {
 58	INT cyanRed;
 59	INT magentaGreen;
 60	INT yellowBlue;
 61} ColorBalanceParams;
 62
 63typedef struct ColorCurveParams {
 64	CurveAdjustments adjustment;
 65	CurveChannel channel;
 66	INT adjustValue;
 67} ColorCurveParams;
 68
 69typedef struct ColorLUTParams {
 70	ColorChannelLUT lutB;
 71	ColorChannelLUT lutG;
 72	ColorChannelLUT lutR;
 73	ColorChannelLUT lutA;
 74} ColorLUTParams;
 75
 76typedef struct HueSaturationLightnessParams {
 77	INT hueLevel;
 78	INT saturationLevel;
 79	INT lightnessLevel;
 80} HueSaturationLightnessParams;
 81
 82typedef struct LevelsParams {
 83	INT highlight;
 84	INT midtone;
 85	INT shadow;
 86} LevelsParams;
 87
 88typedef struct RedEyeCorrectionParams {
 89	UINT numberOfAreas;
 90	RECT *areas;
 91} RedEyeCorrectionParams;
 92
 93typedef struct SharpenParams {
 94	REAL radius;
 95	REAL amount;
 96} SharpenParams;
 97
 98typedef struct TintParams {
 99	INT hue;
100	INT amount;
101} TintParams;
102
103extern const GUID BlurEffectGuid;                    /* ? */
104extern const GUID BrightnessContrastEffectGuid;      /* ? */
105extern const GUID ColorBalanceEffectGuid;            /* ? */
106extern const GUID ColorCurveEffectGuid;              /* ? */
107extern const GUID ColorLUTEffectGuid;                /* ? */
108extern const GUID ColorMatrixEffectGuid;             /* ? */
109extern const GUID HueSaturationLightnessEffectGuid;  /* ? */
110extern const GUID LevelsEffectGuid;                  /* ? */
111extern const GUID RedEyeCorrectionEffectGuid;        /* ? */
112extern const GUID SharpenEffectGuid;                 /* ? */
113extern const GUID TintEffectGuid;                    /* ? */
114
115
116#endif /* __GDIPLUS_EFFECTS_H */