QGIS API Documentation 3.39.0-Master (bca3cdb6021)
Loading...
Searching...
No Matches
qgsbrightnesscontrastfilter.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsbrightnesscontrastfilter.h
3 -------------------
4 begin : February 2013
5 copyright : (C) 2013 by Alexander Bruy
6 email : alexander dot bruy 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
18#ifndef QGSBRIGHTNESSCONTRASTFILTER_H
19#define QGSBRIGHTNESSCONTRASTFILTER_H
20
21#include "qgis_core.h"
22#include "qgis_sip.h"
23#include "qgsrasterinterface.h"
24
25class QDomElement;
26
32{
33 public:
35
38
40 int bandCount() const override;
41
43 Qgis::DataType dataType( int bandNo ) const override;
44
49 bool setInput( QgsRasterInterface *input ) override;
50
61 QgsRasterBlock *block( int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback = nullptr ) override SIP_FACTORY;
62
67 void setBrightness( int brightness );
68
73 int brightness() const { return mBrightness; }
74
79 void setContrast( int contrast );
80
85 int contrast() const { return mContrast; }
86
93 void setGamma( double gamma );
94
101 double gamma() const { return mGamma; }
102
104 void writeXml( QDomDocument &doc, QDomElement &parentElem ) const override;
105
107 void readXml( const QDomElement &filterElem ) override;
108
109 private:
111 int adjustColorComponent( int colorComponent, int alpha, int brightness, double contrastFactor, double gammaCorrection ) const;
112
114 int mBrightness = 0;
115
117 int mContrast = 0;
118
120 double mGamma = 1.0;
121
122};
123
124#endif // QGSBRIGHTNESSCONTRASTFILTER_H
DataType
Raster data types.
Definition qgis.h:351
Brightness/contrast and gamma correction filter pipe for rasters.
int contrast() const
Returns current contrast level.
int brightness() const
Returns current brightness level.
double gamma() const
Returns current gamma value.
Feedback object tailored for raster block reading.
Raster data container.
Base class for processing filters like renderers, reprojector, resampler etc.
virtual QgsRasterInterface * clone() const =0
Clone itself, create deep copy.
virtual QgsRasterBlock * block(int bandNo, const QgsRectangle &extent, int width, int height, QgsRasterBlockFeedback *feedback=nullptr)=0
Read block of data using given extent and size.
virtual Qgis::DataType dataType(int bandNo) const =0
Returns data type for the band specified by number.
virtual int bandCount() const =0
Gets number of bands.
virtual void readXml(const QDomElement &filterElem)
Sets base class members from xml. Usually called from create() methods of subclasses.
virtual void writeXml(QDomDocument &doc, QDomElement &parentElem) const
Write base class members to xml.
virtual bool setInput(QgsRasterInterface *input)
Set input.
A rectangle specified with double values.
#define SIP_FACTORY
Definition qgis_sip.h:76