[QGIS Commit] r15520 - trunk/qgis/src/core/raster
svn_qgis at osgeo.org
svn_qgis at osgeo.org
Wed Mar 16 11:16:14 EDT 2011
Author: jef
Date: 2011-03-16 08:16:14 -0700 (Wed, 16 Mar 2011)
New Revision: 15520
Modified:
trunk/qgis/src/core/raster/qgsrasterlayer.cpp
Log:
fix #3626
Modified: trunk/qgis/src/core/raster/qgsrasterlayer.cpp
===================================================================
--- trunk/qgis/src/core/raster/qgsrasterlayer.cpp 2011-03-16 13:33:14 UTC (rev 15519)
+++ trunk/qgis/src/core/raster/qgsrasterlayer.cpp 2011-03-16 15:16:14 UTC (rev 15520)
@@ -3622,11 +3622,9 @@
QRgb* imageScanLine = 0;
void* rasterScanLine = 0;
- QRgb myDefaultColor = qRgba( 255, 255, 255, 0 );
-
while ( imageBuffer.nextScanLine( &imageScanLine, &rasterScanLine ) )
{
- if ( mTransparencyLevel == 0 )
+ if ( mTransparencyLevel == 255 )
{
int size = theRasterViewPort->drawableAreaXDim * 4;
memcpy( imageScanLine, rasterScanLine, size );
@@ -3636,26 +3634,8 @@
uint *p = ( uint* ) rasterScanLine;
for ( int i = 0; i < theRasterViewPort->drawableAreaXDim; ++i )
{
- uint v = *p++;
- int myRedValue = ( v & 0xff0000 ) >> 16;
- int myGreenValue = ( v & 0xff00 ) >> 8;
- int myBlueValue = ( v & 0xff );
-
- int myAlphaValue = mRasterTransparency.alphaValue( myRedValue, myGreenValue, myBlueValue, mTransparencyLevel );
- if ( 0 == myAlphaValue )
- {
- imageScanLine[ i ] = myDefaultColor;
- continue;
- }
-
- if ( mInvertColor )
- {
- myRedValue = 255 - myRedValue;
- myGreenValue = 255 - myGreenValue;
- myBlueValue = 255 - myBlueValue;
- }
-
- imageScanLine[ i ] = qRgba( myRedValue, myGreenValue, myBlueValue, myAlphaValue );
+ QRgb c( *p++ );
+ imageScanLine[ i ] = qRgba( qRed( c ), qGreen( c ), qBlue( c ), mTransparencyLevel );
}
}
}
More information about the QGIS-commit
mailing list