Skip to content

Commit 83f3d75

Browse files
committedJan 1, 2012
Fix singlebandgrayrenderer
1 parent dec227f commit 83f3d75

File tree

2 files changed

+11
-3
lines changed

2 files changed

+11
-3
lines changed
 

‎src/core/raster/qgsrasterlayer.cpp

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -835,15 +835,14 @@ void QgsRasterLayer::draw( QPainter * theQPainter,
835835
QgsRasterBandStats myGrayBandStats = bandStatistics( grayBand );
836836
setMaximumValue( grayBand, myGrayBandStats.mean + ( mStandardDeviations * myGrayBandStats.stdDev ) );
837837
setMinimumValue( grayBand, myGrayBandStats.mean - ( mStandardDeviations * myGrayBandStats.stdDev ) );
838-
r.setContrastEnhancement( contrastEnhancement( grayBand ) );
839838
}
840839
else if ( QgsContrastEnhancement::NoEnhancement != contrastEnhancementAlgorithm() && !mUserDefinedGrayMinimumMaximum )
841840
{
842841
mGrayMinimumMaximumEstimated = true;
843842
setMaximumValue( grayBand, mDataProvider->maximumValue( grayBand ) );
844-
setMinimumValue( grayBand, mDataProvider->minimumValue( grayBand ) );
845-
r.setContrastEnhancement( contrastEnhancement( grayBand ) );
843+
setMinimumValue( grayBand, mDataProvider->minimumValue( grayBand ) );
846844
}
845+
r.setContrastEnhancement( contrastEnhancement( grayBand ) );
847846
r.draw( theQPainter, theRasterViewPort, theQgsMapToPixel );
848847

849848
#if 0

‎src/core/raster/qgssinglebandgrayrenderer.cpp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,8 @@ void QgsSingleBandGrayRenderer::draw( QPainter* p, QgsRasterViewPort* viewPort,
4646
void* rasterData;
4747
//double currentOpacity = mOpacity;
4848
int grayVal;
49+
QRgb myDefaultColor = qRgba( 0, 0, 0, 0 );
50+
4951

5052
while ( readNextRasterPart( mGrayBand, viewPort, nCols, nRows, &rasterData, topLeftCol, topLeftRow ) )
5153
{
@@ -60,8 +62,15 @@ void QgsSingleBandGrayRenderer::draw( QPainter* p, QgsRasterViewPort* viewPort,
6062
for ( int j = 0; j < nCols; ++j )
6163
{
6264
grayVal = readValue( rasterData, rasterType, currentRasterPos );
65+
6366
if ( mContrastEnhancement )
6467
{
68+
if ( !mContrastEnhancement->isValueInDisplayableRange( grayVal ) )
69+
{
70+
imageScanLine[ j ] = myDefaultColor;
71+
++currentRasterPos;
72+
continue;
73+
}
6574
grayVal = mContrastEnhancement->enhanceContrast( grayVal );
6675
}
6776

0 commit comments

Comments
 (0)
Please sign in to comment.