Home | History | Annotate | Download | only in gdiplus
      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 (at) 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