Skip to content

Commit a8ac741

Browse files
author
mhugent
committedApr 16, 2011
Improve raster performance if no clip and stretch is used on multi band color layer
git-svn-id: http://svn.osgeo.org/qgis/trunk/qgis@15736 c8812cc2-4d05-0410-92ff-de0c093fc19c

File tree

1 file changed

+16
-7
lines changed

1 file changed

+16
-7
lines changed
 

‎src/core/raster/qgsrasterlayer.cpp

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3771,7 +3771,6 @@ void QgsRasterLayer::drawMultiBandColor( QPainter * theQPainter, QgsRasterViewPo
37713771
{
37723772
for ( int i = 0; i < theRasterViewPort->drawableAreaXDim; ++i )
37733773
{
3774-
//myRedValue = readValue( redRasterScanLine, ( GDALDataType )myRedType, i );
37753774
myRedValue = readValue( redRasterScanLine, myRedType, i );
37763775
myGreenValue = readValue( greenRasterScanLine, myGreenType, i );
37773776
myBlueValue = readValue( blueRasterScanLine, myBlueType, i );
@@ -3788,9 +3787,10 @@ void QgsRasterLayer::drawMultiBandColor( QPainter * theQPainter, QgsRasterViewPo
37883787
continue;
37893788
}
37903789

3791-
if ( !myRedContrastEnhancement->isValueInDisplayableRange( myRedValue ) ||
3792-
!myGreenContrastEnhancement->isValueInDisplayableRange( myGreenValue ) ||
3793-
!myBlueContrastEnhancement->isValueInDisplayableRange( myBlueValue ) )
3790+
if ( QgsContrastEnhancement::NoEnhancement != contrastEnhancementAlgorithm() &&
3791+
( !myRedContrastEnhancement->isValueInDisplayableRange( myRedValue ) ||
3792+
!myGreenContrastEnhancement->isValueInDisplayableRange( myGreenValue ) ||
3793+
!myBlueContrastEnhancement->isValueInDisplayableRange( myBlueValue ) ) )
37943794
{
37953795
redImageScanLine[ i ] = myDefaultColor;
37963796
continue;
@@ -3803,9 +3803,18 @@ void QgsRasterLayer::drawMultiBandColor( QPainter * theQPainter, QgsRasterViewPo
38033803
continue;
38043804
}
38053805

3806-
myStretchedRedValue = myRedContrastEnhancement->enhanceContrast( myRedValue );
3807-
myStretchedGreenValue = myGreenContrastEnhancement->enhanceContrast( myGreenValue );
3808-
myStretchedBlueValue = myBlueContrastEnhancement->enhanceContrast( myBlueValue );
3806+
if ( QgsContrastEnhancement::NoEnhancement == contrastEnhancementAlgorithm() )
3807+
{
3808+
myStretchedRedValue = myRedValue;
3809+
myStretchedGreenValue = myGreenValue;
3810+
myStretchedBlueValue = myBlueValue;
3811+
}
3812+
else
3813+
{
3814+
myStretchedRedValue = myRedContrastEnhancement->enhanceContrast( myRedValue );
3815+
myStretchedGreenValue = myGreenContrastEnhancement->enhanceContrast( myGreenValue );
3816+
myStretchedBlueValue = myBlueContrastEnhancement->enhanceContrast( myBlueValue );
3817+
}
38093818

38103819
if ( mInvertColor )
38113820
{

0 commit comments

Comments
 (0)
Please sign in to comment.