QgsRasterRenderer* QgsSingleBandColorDataRenderer::create( const QDomElement& elem, QgsRasterInterface* input ) { if ( elem.isNull() ) { return 0; } int band = elem.attribute( "band", "-1" ).toInt(); QgsRasterRenderer* r = new QgsSingleBandColorDataRenderer( input, band ); r->readXML( elem ); return r; }
QgsRasterRenderer* QgsMultiBandColorRenderer::create( const QDomElement& elem, QgsRasterInterface* input ) { if ( elem.isNull() ) { return 0; } //red band, green band, blue band int redBand = elem.attribute( "redBand", "-1" ).toInt(); int greenBand = elem.attribute( "greenBand", "-1" ).toInt(); int blueBand = elem.attribute( "blueBand", "-1" ).toInt(); //contrast enhancements QgsContrastEnhancement* redContrastEnhancement = 0; QDomElement redContrastElem = elem.firstChildElement( "redContrastEnhancement" ); if ( !redContrastElem.isNull() ) { redContrastEnhancement = new QgsContrastEnhancement(( QgsContrastEnhancement::QgsRasterDataType )( input->dataType( redBand ) ) ); redContrastEnhancement->readXML( redContrastElem ); } QgsContrastEnhancement* greenContrastEnhancement = 0; QDomElement greenContrastElem = elem.firstChildElement( "greenContrastEnhancement" ); if ( !greenContrastElem.isNull() ) { greenContrastEnhancement = new QgsContrastEnhancement(( QgsContrastEnhancement::QgsRasterDataType )( input->dataType( greenBand ) ) ); greenContrastEnhancement->readXML( greenContrastElem ); } QgsContrastEnhancement* blueContrastEnhancement = 0; QDomElement blueContrastElem = elem.firstChildElement( "blueContrastEnhancement" ); if ( !blueContrastElem.isNull() ) { blueContrastEnhancement = new QgsContrastEnhancement(( QgsContrastEnhancement::QgsRasterDataType )( input->dataType( blueBand ) ) ); blueContrastEnhancement->readXML( blueContrastElem ); } QgsRasterRenderer* r = new QgsMultiBandColorRenderer( input, redBand, greenBand, blueBand, redContrastEnhancement, greenContrastEnhancement, blueContrastEnhancement ); r->readXML( elem ); return r; }
QgsRasterRenderer* QgsSingleBandPseudoColorRenderer::create( const QDomElement& elem, QgsRasterDataProvider* provider ) { if ( elem.isNull() ) { return 0; } int band = elem.attribute( "band", "-1" ).toInt(); QgsRasterShader* shader = 0; QDomElement rasterShaderElem = elem.firstChildElement( "rastershader" ); if ( !rasterShaderElem.isNull() ) { shader = new QgsRasterShader(); shader->readXML( rasterShaderElem ); } QgsRasterRenderer* r = new QgsSingleBandPseudoColorRenderer( provider, band, shader ); r->readXML( elem ); return r; }