QGIS API Documentation
2.2.0-Valmiera
|
Color and saturation filter pipe for rasters. More...
#include <qgshuesaturationfilter.h>
Public Types | |
enum | GrayscaleMode { GrayscaleOff, GrayscaleLightness, GrayscaleLuminosity, GrayscaleAverage } |
Public Types inherited from QgsRasterInterface | |
enum | Capability { NoCapabilities = 0, Size = 1 << 1, Create = 1 << 2, Remove = 1 << 3, BuildPyramids = 1 << 4, Identify = 1 << 5, IdentifyValue = 1 << 6, IdentifyText = 1 << 7, IdentifyHtml = 1 << 8, IdentifyFeature = 1 << 9 } |
If you add to this, please also add to capabilitiesString() More... |
Public Member Functions | |
QgsHueSaturationFilter (QgsRasterInterface *input=0) | |
~QgsHueSaturationFilter () | |
QgsRasterInterface * | clone () const |
Clone itself, create deep copy. | |
int | bandCount () const |
Get number of bands. | |
QGis::DataType | dataType (int bandNo) const |
Returns data type for the band specified by number. | |
bool | setInput (QgsRasterInterface *input) |
Set input. | |
QgsRasterBlock * | block (int bandNo, const QgsRectangle &extent, int width, int height) |
Read block of data using given extent and size. | |
void | setSaturation (int saturation) |
int | saturation () const |
void | setGrayscaleMode (QgsHueSaturationFilter::GrayscaleMode grayscaleMode) |
QgsHueSaturationFilter::GrayscaleMode | grayscaleMode () const |
void | setColorizeOn (bool colorizeOn) |
bool | colorizeOn () const |
void | setColorizeColor (QColor colorizeColor) |
QColor | colorizeColor () const |
void | setColorizeStrength (int colorizeStrength) |
int | colorizeStrength () const |
void | writeXML (QDomDocument &doc, QDomElement &parentElem) const |
Write base class members to xml. | |
void | readXML (const QDomElement &filterElem) |
Sets base class members from xml. | |
Public Member Functions inherited from QgsRasterInterface | |
QgsRasterInterface (QgsRasterInterface *input=0) | |
virtual | ~QgsRasterInterface () |
virtual int | capabilities () const |
Returns a bitmask containing the supported capabilities. | |
QString | capabilitiesString () const |
Returns the above in friendly format. | |
virtual QGis::DataType | srcDataType (int bandNo) const |
Returns source data type for the band specified by number, source data type may be shorter than dataType. | |
virtual QgsRectangle | extent () |
Get the extent of the interface. | |
int | dataTypeSize (int bandNo) |
virtual int | xBlockSize () const |
Get block size. | |
virtual int | yBlockSize () const |
virtual int | xSize () const |
Get raster size. | |
virtual int | ySize () const |
virtual QString | generateBandName (int theBandNumber) const |
helper function to create zero padded band names | |
virtual QgsRasterInterface * | input () const |
Current input. | |
virtual bool | on () const |
Is on/off. | |
virtual void | setOn (bool on) |
Set on/off. | |
virtual const QgsRasterInterface * | srcInput () const |
Get source / raw input, the first in pipe, usually provider. | |
virtual QgsRasterInterface * | srcInput () |
virtual QgsRasterBandStats | bandStatistics (int theBandNo, int theStats=QgsRasterBandStats::All, const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0) |
Get band statistics. | |
virtual bool | hasStatistics (int theBandNo, int theStats=QgsRasterBandStats::All, const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0) |
Returns true if histogram is available (cached, already calculated). | |
virtual QgsRasterHistogram | histogram (int theBandNo, int theBinCount=0, double theMinimum=std::numeric_limits< double >::quiet_NaN(), double theMaximum=std::numeric_limits< double >::quiet_NaN(), const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0, bool theIncludeOutOfRange=false) |
Get histogram. | |
virtual bool | hasHistogram (int theBandNo, int theBinCount, double theMinimum=std::numeric_limits< double >::quiet_NaN(), double theMaximum=std::numeric_limits< double >::quiet_NaN(), const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0, bool theIncludeOutOfRange=false) |
Returns true if histogram is available (cached, already calculated), the parameters are the same as in histogram() | |
virtual void | cumulativeCut (int theBandNo, double theLowerCount, double theUpperCount, double &theLowerValue, double &theUpperValue, const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0) |
Find values for cumulative pixel count cut. |
Private Member Functions | |
void | processSaturation (int &r, int &g, int &b, int &h, int &s, int &l) |
Process a change in saturation and update resultant HSL & RGB values. | |
void | processColorization (int &r, int &g, int &b, int &h, int &s, int &l) |
Process a colorization and update resultant HSL & RGB values. |
Private Attributes | |
int | mSaturation |
Current saturation value. | |
double | mSaturationScale |
QgsHueSaturationFilter::GrayscaleMode | mGrayscaleMode |
Current grayscale mode. | |
bool | mColorizeOn |
Colorize settings. | |
QColor | mColorizeColor |
int | mColorizeH |
int | mColorizeS |
int | mColorizeStrength |
Additional Inherited Members | |
Protected Member Functions inherited from QgsRasterInterface | |
void | initHistogram (QgsRasterHistogram &theHistogram, int theBandNo, int theBinCount=0, double theMinimum=std::numeric_limits< double >::quiet_NaN(), double theMaximum=std::numeric_limits< double >::quiet_NaN(), const QgsRectangle &theExtent=QgsRectangle(), int theSampleSize=0, bool theIncludeOutOfRange=false) |
Fill in histogram defaults if not specified. | |
void | initStatistics (QgsRasterBandStats &theStatistics, int theBandNo, int theStats=QgsRasterBandStats::All, const QgsRectangle &theExtent=QgsRectangle(), int theBinCount=0) |
Fill in statistics defaults if not specified. | |
Protected Attributes inherited from QgsRasterInterface | |
QgsRasterInterface * | mInput |
QList< QgsRasterBandStats > | mStatistics |
List of cached statistics, all bands mixed. | |
QList< QgsRasterHistogram > | mHistograms |
List of cached histograms, all bands mixed. | |
bool | mOn |
Color and saturation filter pipe for rasters.
Definition at line 29 of file qgshuesaturationfilter.h.
Definition at line 34 of file qgshuesaturationfilter.h.
QgsHueSaturationFilter::QgsHueSaturationFilter | ( | QgsRasterInterface * | input = 0 | ) |
Definition at line 25 of file qgshuesaturationfilter.cpp.
Referenced by clone().
QgsHueSaturationFilter::~QgsHueSaturationFilter | ( | ) |
Definition at line 35 of file qgshuesaturationfilter.cpp.
|
virtual |
Get number of bands.
Implements QgsRasterInterface.
Definition at line 51 of file qgshuesaturationfilter.cpp.
References QgsRasterInterface::bandCount(), QgsRasterInterface::mInput, and QgsRasterInterface::mOn.
|
virtual |
Read block of data using given extent and size.
Returns pointer to data. Caller is responsible to free the memory returned.
bandNo | band number |
extent | extent of block |
width | pixel width of block |
height | pixel height of block |
Implements QgsRasterInterface.
Definition at line 118 of file qgshuesaturationfilter.cpp.
References QGis::ARGB32_Premultiplied, QgsRasterInterface::block(), QgsRasterBlock::color(), GrayscaleOff, QgsRasterBlock::isEmpty(), mColorizeOn, mGrayscaleMode, QgsRasterInterface::mInput, mSaturation, mSaturationScale, processColorization(), processSaturation(), QgsDebugMsg, QgsRasterBlock::reset(), QgsRasterBlock::setColor(), and QgsRectangle::toString().
|
virtual |
Clone itself, create deep copy.
Implements QgsRasterInterface.
Definition at line 39 of file qgshuesaturationfilter.cpp.
References mColorizeColor, mColorizeOn, mColorizeStrength, mGrayscaleMode, mSaturation, QgsDebugMsg, QgsHueSaturationFilter(), setColorizeColor(), setColorizeOn(), setColorizeStrength(), setGrayscaleMode(), and setSaturation().
|
inline |
Definition at line 64 of file qgshuesaturationfilter.h.
Referenced by setColorizeColor().
|
inline |
Definition at line 62 of file qgshuesaturationfilter.h.
|
inline |
Definition at line 66 of file qgshuesaturationfilter.h.
|
virtual |
Returns data type for the band specified by number.
Implements QgsRasterInterface.
Definition at line 66 of file qgshuesaturationfilter.cpp.
References QGis::ARGB32_Premultiplied, QgsRasterInterface::dataType(), QgsRasterInterface::mInput, QgsRasterInterface::mOn, and QGis::UnknownDataType.
|
inline |
Definition at line 59 of file qgshuesaturationfilter.h.
|
private |
Process a colorization and update resultant HSL & RGB values.
Definition at line 225 of file qgshuesaturationfilter.cpp.
References mColorizeH, mColorizeS, and mColorizeStrength.
Referenced by block().
|
private |
Process a change in saturation and update resultant HSL & RGB values.
Definition at line 263 of file qgshuesaturationfilter.cpp.
References GrayscaleAverage, GrayscaleLightness, GrayscaleLuminosity, GrayscaleOff, mGrayscaleMode, and mSaturationScale.
Referenced by block().
|
virtual |
Sets base class members from xml.
Usually called from create() methods of subclasses
Reimplemented from QgsRasterInterface.
Definition at line 363 of file qgshuesaturationfilter.cpp.
References mColorizeOn, mColorizeStrength, mGrayscaleMode, setColorizeColor(), and setSaturation().
Referenced by QgsRasterLayer::readSymbology().
|
inline |
Definition at line 56 of file qgshuesaturationfilter.h.
void QgsHueSaturationFilter::setColorizeColor | ( | QColor | colorizeColor | ) |
Definition at line 334 of file qgshuesaturationfilter.cpp.
References colorizeColor(), mColorizeColor, mColorizeH, and mColorizeS.
|
inline |
Definition at line 61 of file qgshuesaturationfilter.h.
Referenced by clone().
|
inline |
Definition at line 65 of file qgshuesaturationfilter.h.
Referenced by clone().
|
inline |
Definition at line 58 of file qgshuesaturationfilter.h.
Referenced by clone().
|
virtual |
Set input.
Returns true if set correctly, false if cannot use that input
Reimplemented from QgsRasterInterface.
Definition at line 81 of file qgshuesaturationfilter.cpp.
References QGis::ARGB32, QGis::ARGB32_Premultiplied, QgsRasterInterface::bandCount(), QgsRasterInterface::dataType(), QgsRasterInterface::input(), QgsRasterInterface::mInput, QgsRasterInterface::mOn, and QgsDebugMsg.
void QgsHueSaturationFilter::setSaturation | ( | int | saturation | ) |
Definition at line 326 of file qgshuesaturationfilter.cpp.
References mSaturation, and mSaturationScale.
|
virtual |
Write base class members to xml.
Reimplemented from QgsRasterInterface.
Definition at line 343 of file qgshuesaturationfilter.cpp.
References mColorizeColor, mColorizeOn, mColorizeStrength, mGrayscaleMode, and mSaturation.
|
private |
Definition at line 88 of file qgshuesaturationfilter.h.
Referenced by clone(), setColorizeColor(), and writeXML().
|
private |
Definition at line 89 of file qgshuesaturationfilter.h.
Referenced by processColorization(), and setColorizeColor().
|
private |
Colorize settings.
Definition at line 87 of file qgshuesaturationfilter.h.
Referenced by block(), clone(), readXML(), and writeXML().
|
private |
Definition at line 89 of file qgshuesaturationfilter.h.
Referenced by processColorization(), and setColorizeColor().
|
private |
Definition at line 90 of file qgshuesaturationfilter.h.
Referenced by clone(), processColorization(), readXML(), and writeXML().
|
private |
Current grayscale mode.
Definition at line 84 of file qgshuesaturationfilter.h.
Referenced by block(), clone(), processSaturation(), readXML(), and writeXML().
|
private |
Current saturation value.
Range: -100 (desaturated) ... 0 (no change) ... 100 (increased)
Definition at line 80 of file qgshuesaturationfilter.h.
Referenced by block(), clone(), setSaturation(), and writeXML().
|
private |
Definition at line 81 of file qgshuesaturationfilter.h.
Referenced by block(), processSaturation(), and setSaturation().