mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-25 00:58:06 -05:00
Add specific test for QgsMultiBandColorRenderer
The raster blend mode test, which uses QgsMultiBandColorRenderer fails occasionally for no obvious reason. This additional test is an attempt to narrow down whether the issue lies in rendering multi band images or elsewhere.
This commit is contained in:
parent
a20d50340d
commit
7fcc7ab195
@ -35,6 +35,7 @@
|
||||
#include <qgsmaprenderer.h>
|
||||
#include <qgssinglebandgrayrenderer.h>
|
||||
#include <qgssinglebandpseudocolorrenderer.h>
|
||||
#include <qgsmultibandcolorrenderer.h>
|
||||
#include <qgsvectorcolorrampv2.h>
|
||||
#include <qgscptcityarchive.h>
|
||||
|
||||
@ -49,10 +50,11 @@ class TestQgsRasterLayer : public QObject
|
||||
Q_OBJECT
|
||||
public:
|
||||
TestQgsRasterLayer()
|
||||
: mpRasterLayer( 0 )
|
||||
, mpLandsatRasterLayer( 0 )
|
||||
, mpFloat32RasterLayer( 0 )
|
||||
, mMapSettings( 0 )
|
||||
: mpRasterLayer( nullptr )
|
||||
, mpLandsatRasterLayer( nullptr )
|
||||
, mpFloat32RasterLayer( nullptr )
|
||||
, mPngRasterLayer( nullptr )
|
||||
, mMapSettings( nullptr )
|
||||
{}
|
||||
~TestQgsRasterLayer()
|
||||
{
|
||||
@ -79,6 +81,7 @@ class TestQgsRasterLayer : public QObject
|
||||
void buildExternalOverviews();
|
||||
void registry();
|
||||
void transparency();
|
||||
void multiBandColorRenderer();
|
||||
void setRenderer();
|
||||
private:
|
||||
bool render( const QString& theFileName );
|
||||
@ -92,6 +95,7 @@ class TestQgsRasterLayer : public QObject
|
||||
QgsRasterLayer * mpRasterLayer;
|
||||
QgsRasterLayer * mpLandsatRasterLayer;
|
||||
QgsRasterLayer * mpFloat32RasterLayer;
|
||||
QgsRasterLayer * mPngRasterLayer;
|
||||
QgsMapSettings * mMapSettings;
|
||||
QString mReport;
|
||||
};
|
||||
@ -101,7 +105,7 @@ class TestSignalReceiver : public QObject
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TestSignalReceiver() : QObject( 0 ),
|
||||
TestSignalReceiver() : QObject( nullptr ),
|
||||
rendererChanged( false )
|
||||
{}
|
||||
bool rendererChanged;
|
||||
@ -132,6 +136,7 @@ void TestQgsRasterLayer::initTestCase()
|
||||
QString myFileName = mTestDataDir + "tenbytenraster.asc";
|
||||
QString myLandsatFileName = mTestDataDir + "landsat.tif";
|
||||
QString myFloat32FileName = mTestDataDir + "/raster/band1_float32_noct_epsg4326.tif";
|
||||
QString pngRasterFileName = mTestDataDir + "rgb256x256.png";
|
||||
|
||||
QFileInfo myRasterFileInfo( myFileName );
|
||||
mpRasterLayer = new QgsRasterLayer( myRasterFileInfo.filePath(),
|
||||
@ -148,13 +153,16 @@ void TestQgsRasterLayer::initTestCase()
|
||||
myFloat32RasterFileInfo.completeBaseName() );
|
||||
qDebug() << "float32raster metadata: " << mpFloat32RasterLayer->dataProvider()->metadata();
|
||||
|
||||
QFileInfo pngRasterFileInfo( pngRasterFileName );
|
||||
mPngRasterLayer = new QgsRasterLayer( pngRasterFileInfo.filePath(),
|
||||
pngRasterFileInfo.completeBaseName() );
|
||||
|
||||
// Register the layer with the registry
|
||||
QgsMapLayerRegistry::instance()->addMapLayers(
|
||||
QList<QgsMapLayer *>() << mpRasterLayer );
|
||||
QgsMapLayerRegistry::instance()->addMapLayers(
|
||||
QList<QgsMapLayer *>() << mpLandsatRasterLayer );
|
||||
QgsMapLayerRegistry::instance()->addMapLayers(
|
||||
QList<QgsMapLayer *>() << mpFloat32RasterLayer );
|
||||
QList<QgsMapLayer *>() << mpRasterLayer
|
||||
<< mpLandsatRasterLayer
|
||||
<< mpFloat32RasterLayer
|
||||
<< mPngRasterLayer );
|
||||
|
||||
// add the test layer to the maprender
|
||||
mMapSettings->setLayers( QStringList() << mpRasterLayer->id() );
|
||||
@ -597,6 +605,15 @@ void TestQgsRasterLayer::transparency()
|
||||
QVERIFY( render( "raster_transparency" ) );
|
||||
}
|
||||
|
||||
void TestQgsRasterLayer::multiBandColorRenderer()
|
||||
{
|
||||
QgsMultiBandColorRenderer* rasterRenderer = new QgsMultiBandColorRenderer( mPngRasterLayer->dataProvider(), 1, 2, 3 );
|
||||
mPngRasterLayer->setRenderer( rasterRenderer );
|
||||
mMapSettings->setLayers( QStringList() << mPngRasterLayer->id() );
|
||||
mMapSettings->setExtent( mPngRasterLayer->extent() );
|
||||
QVERIFY( render( "raster_multibandrenderer" ) );
|
||||
}
|
||||
|
||||
void TestQgsRasterLayer::setRenderer()
|
||||
{
|
||||
TestSignalReceiver receiver;
|
||||
|
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
Loading…
x
Reference in New Issue
Block a user