Skip to content

Commit 06197e3

Browse files
author
ersts
committed
-Set default contrast enhancement to STRETCH_TO_MIN_MAX
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@7952 c8812cc2-4d05-0410-92ff-de0c093fc19c
1 parent c7d3a86 commit 06197e3

File tree

1 file changed

+21
-1
lines changed

1 file changed

+21
-1
lines changed

src/core/raster/qgsrasterlayer.cpp

+21-1
Original file line numberDiff line numberDiff line change
@@ -392,7 +392,6 @@ QgsRasterLayer::QgsRasterLayer(QString const & path, QString const & baseName)
392392
{
393393
mUserDefinedRGBMinMaxFlag = false; //defaults needed to bypass stretch
394394
mUserDefinedGrayMinMaxFlag = false;
395-
setContrastEnhancementAlgorithm(QgsContrastEnhancement::NO_STRETCH); //defaults needed to bypass stretch
396395

397396
mRasterShader = new QgsRasterShader();
398397

@@ -579,6 +578,8 @@ bool QgsRasterLayer::readFile( QString const & fileName )
579578
mContrastEnhancementList.append(myContrastEnhancement);
580579
}
581580

581+
setContrastEnhancementAlgorithm(QgsContrastEnhancement::STRETCH_TO_MINMAX); //defaults - Needs to be set after the Contrast list has been build
582+
582583
//decide what type of layer this is...
583584
//note that multiband images can have one or more 'undefindd' bands,
584585
//so we must do this check first!
@@ -1440,6 +1441,12 @@ void QgsRasterLayer::drawSingleBandGray(QPainter * theQPainter, QgsRasterViewPor
14401441
setMaximumValue(theBandNo, myGrayBandStats.mean + (mStandardDeviations * myGrayBandStats.stdDev));
14411442
setMinimumValue(theBandNo, myGrayBandStats.mean - (mStandardDeviations * myGrayBandStats.stdDev));
14421443
}
1444+
else if(QgsContrastEnhancement::NO_STRETCH != getContrastEnhancementAlgorithm() && !mUserDefinedGrayMinMaxFlag)
1445+
{
1446+
myGrayBandStats = getRasterBandStats(theBandNo);
1447+
setMaximumValue(theBandNo, myGrayBandStats.maxVal);
1448+
setMinimumValue(theBandNo, myGrayBandStats.minVal);
1449+
}
14431450

14441451
QgsDebugMsg("Starting main render loop");
14451452
// print each point in myGdalScanData with equal parts R, G ,B o make it show as gray
@@ -2069,6 +2076,19 @@ void QgsRasterLayer::drawMultiBandColor(QPainter * theQPainter, QgsRasterViewPor
20692076
setMaximumValue(myBlueBandNo, myBlueBandStats.mean + (mStandardDeviations * myBlueBandStats.stdDev));
20702077
setMinimumValue(myBlueBandNo, myBlueBandStats.mean - (mStandardDeviations * myBlueBandStats.stdDev));
20712078
}
2079+
else if(QgsContrastEnhancement::NO_STRETCH != getContrastEnhancementAlgorithm() && !mUserDefinedRGBMinMaxFlag)
2080+
{
2081+
myRedBandStats = getRasterBandStats(myRedBandNo);
2082+
myGreenBandStats = getRasterBandStats(myGreenBandNo);
2083+
myBlueBandStats = getRasterBandStats(myBlueBandNo);
2084+
2085+
setMaximumValue(myRedBandNo, myRedBandStats.maxVal);
2086+
setMinimumValue(myRedBandNo, myRedBandStats.minVal);
2087+
setMaximumValue(myGreenBandNo, myGreenBandStats.maxVal);
2088+
setMinimumValue(myGreenBandNo, myGreenBandStats.minVal);
2089+
setMaximumValue(myBlueBandNo, myBlueBandStats.maxVal);
2090+
setMinimumValue(myBlueBandNo, myBlueBandStats.minVal);
2091+
}
20722092

20732093
//Read and display pixels
20742094
double myRedValue = 0.0;

0 commit comments

Comments
 (0)