QGIS API Documentation  2.18.21-Las Palmas (9fba24a)
qgscoloreffect.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgscoloreffect.h
3  ----------------
4  begin : March 2015
5  copyright : (C) 2015 Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 #ifndef QGSCOLOREFFECT_H
18 #define QGSCOLOREFFECT_H
19 
20 #include "qgspainteffect.h"
21 #include "qgsimageoperation.h"
22 #include "qgis.h"
23 #include <QPainter>
24 
33 class CORE_EXPORT QgsColorEffect : public QgsPaintEffect
34 {
35 
36  public:
37 
42  static QgsPaintEffect* create( const QgsStringMap& map );
43 
45  virtual ~QgsColorEffect();
46 
47  virtual QString type() const override { return QString( "color" ); }
48  virtual QgsStringMap properties() const override;
49  virtual void readProperties( const QgsStringMap& props ) override;
50  virtual QgsColorEffect* clone() const override;
51 
58  void setBrightness( int brightness ) { mBrightness = qBound( -255, brightness, 255 ); }
59 
66  int brightness() const { return mBrightness; }
67 
74  void setContrast( int contrast ) { mContrast = qBound( -100, contrast, 100 ); }
75 
82  int contrast() const { return mContrast; }
83 
90  void setSaturation( double saturation ) { mSaturation = saturation; }
91 
98  double saturation() const { return mSaturation; }
99 
104  void setGrayscaleMode( QgsImageOperation::GrayscaleMode grayscaleMode ) { mGrayscaleMode = grayscaleMode; }
105 
110  QgsImageOperation::GrayscaleMode grayscaleMode() const { return mGrayscaleMode; }
111 
118  void setColorizeOn( bool colorizeOn ) { mColorizeOn = colorizeOn; }
119 
126  bool colorizeOn() const { return mColorizeOn; }
127 
135  void setColorizeColor( const QColor& colorizeColor );
136 
144  QColor colorizeColor() const { return mColorizeColor; }
145 
153  void setColorizeStrength( int colorizeStrength ) { mColorizeStrength = colorizeStrength; }
154 
162  int colorizeStrength() const { return mColorizeStrength; }
163 
169  void setTransparency( const double transparency ) { mTransparency = transparency; }
170 
176  double transparency() const { return mTransparency; }
177 
183  void setBlendMode( const QPainter::CompositionMode mode ) { mBlendMode = mode; }
184 
190  QPainter::CompositionMode blendMode() const { return mBlendMode; }
191 
192  protected:
193 
194  virtual void draw( QgsRenderContext& context ) override;
195 
196  private:
197 
198  double mTransparency;
199  QPainter::CompositionMode mBlendMode;
200  int mBrightness;
201  int mContrast;
202  double mSaturation;
203  QgsImageOperation::GrayscaleMode mGrayscaleMode;
204  bool mColorizeOn;
205  QColor mColorizeColor;
206  int mColorizeStrength;
207 };
208 
209 #endif // QGSBLUREFFECT_H
210 
virtual QgsStringMap properties() const =0
Returns the properties describing the paint effect encoded in a string format.
void setTransparency(const double transparency)
Sets the transparency for the effect.
Base class for visual effects which can be applied to QPicture drawings.
void setColorizeStrength(int colorizeStrength)
Sets the strength for colorizing a picture.
virtual QgsPaintEffect * clone() const =0
Duplicates an effect by creating a deep copy of the effect.
void setGrayscaleMode(QgsImageOperation::GrayscaleMode grayscaleMode)
Sets whether the effect should convert a picture to grayscale.
void setBrightness(int brightness)
Sets the brightness modification for the effect.
virtual QString type() const override
Returns the effect type.
void setColorizeOn(bool colorizeOn)
Sets whether the effect should colorize a picture.
void setContrast(int contrast)
Sets the contrast modification for the effect.
QgsImageOperation::GrayscaleMode grayscaleMode() const
Returns whether the effect will convert a picture to grayscale.
virtual void readProperties(const QgsStringMap &props)=0
Reads a string map of an effect&#39;s properties and restores the effect to the state described by the pr...
QPainter::CompositionMode blendMode() const
Returns the blend mode for the effect.
Contains information about the context of a rendering operation.
void setSaturation(double saturation)
Sets the saturation modification for the effect.
int colorizeStrength() const
Returns the strength used for colorizing a picture.
double saturation() const
Returns the saturation modification for the effect.
A paint effect which alters the colors (eg brightness, contrast) in a source picture.
void setBlendMode(const QPainter::CompositionMode mode)
Sets the blend mode for the effect.
virtual void draw(QgsRenderContext &context)=0
Handles drawing of the effect&#39;s result on to the specified render context.
double transparency() const
Returns the transparency for the effect.
GrayscaleMode
Modes for converting a QImage to grayscale.
bool colorizeOn() const
Returns whether the effect will colorize a picture.
int contrast() const
Returns the contrast modification for the effect.
QColor colorizeColor() const
Returns the color used for colorizing a picture.
int brightness() const
Returns the brightness modification for the effect.