QGIS/python/core/raster/qgspalettedrasterrenderer.sip
Nyall Dawson d03844d24e [FEATURE] Allow classifying paletted renderer using unique values
from a raster layer

Adds an easy way to style discrete rasters such as landuse classes
using the Paletted renderer. Just select the Paletted renderer,
pick a band, then hit the "Add Unique Values" button. The unique
pixel values will be fetched from the layer and a color assigned
to each using the currently selected color ramp.

Fix #14845

Sponsored by
- Stéphane Henriod
- Satelligence (http://satelligence.com/)
- Bird's Eye View (https://www.birdseyeviewgis.com/)
- + other anonymous backers
2017-04-03 12:08:08 +10:00

50 lines
2.0 KiB
Plaintext

class QgsPalettedRasterRenderer : QgsRasterRenderer
{
%TypeHeaderCode
#include "qgspalettedrasterrenderer.h"
%End
public:
struct Class
{
Class( int value, const QColor &color = QColor(), const QString &label = QString() );
int value;
QColor color;
QString label;
};
typedef QList< QgsPalettedRasterRenderer::Class > ClassData;
QgsPalettedRasterRenderer( QgsRasterInterface *input, int bandNumber, const ClassData &classes );
~QgsPalettedRasterRenderer();
virtual QgsPalettedRasterRenderer * clone() const /Factory/;
static QgsRasterRenderer* create( const QDomElement& elem, QgsRasterInterface* input ) /Factory/;
QgsRasterBlock *block( int bandNo, const QgsRectangle & extent, int width, int height, QgsRasterBlockFeedback* feedback = nullptr ) /Factory/;
/** Returns number of colors*/
int nColors() const;
ClassData classes() const;
QString label( int idx ) const;
void setLabel( int idx, const QString &label );
void writeXml( QDomDocument &doc, QDomElement &parentElem ) const;
void legendSymbologyItems( QList< QPair< QString, QColor > > &symbolItems /Out/ ) const;
QList<int> usesBands() const;
void setSourceColorRamp( QgsColorRamp *ramp /Transfer/ );
QgsColorRamp *sourceColorRamp() const;
static QgsPalettedRasterRenderer::ClassData colorTableToClassData( const QList<QgsColorRampShader::ColorRampItem> &table );
static QgsPalettedRasterRenderer::ClassData classDataFromString( const QString &string );
static QgsPalettedRasterRenderer::ClassData classDataFromFile( const QString &path );
static QString classDataToString( const QgsPalettedRasterRenderer::ClassData &classes );
static QgsPalettedRasterRenderer::ClassData classDataFromRaster( QgsRasterInterface *raster, int bandNumber, QgsColorRamp *ramp = 0 );
private:
QgsPalettedRasterRenderer( const QgsPalettedRasterRenderer& );
const QgsPalettedRasterRenderer& operator=( const QgsPalettedRasterRenderer& );
};