[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