Enlightenment CVS committal

Author  : titan
Project : e17
Module  : apps/ephoto

Dir     : e17/apps/ephoto/src/bin


Modified Files:
        ephoto_imaging.c 


Log Message:
Fix the alpha issues with grayscale and sepia conversions, thanks 
rasties and rephorm

===================================================================
RCS file: /cvs/e/e17/apps/ephoto/src/bin/ephoto_imaging.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- ephoto_imaging.c    31 May 2007 06:02:36 -0000      1.17
+++ ephoto_imaging.c    17 Jun 2007 03:21:51 -0000      1.18
@@ -290,7 +290,16 @@
                r = (int)((im_data[i] >> 16) & 0xff);
                a = (int)((im_data[i] >> 24) & 0xff);
 
+               if (a > 0 && a < 255)
+               {
+                       b = b * (255 / a);
+                       g = g * (255 / a);
+                       r = r * (255 / a);
+               }
+
                gray = (int)((0.3 * r) + (0.59 * g) + (0.11 * b));
+
+               if (a >= 0 && a < 255) gray = (gray * a) / 255;
        
                im_data_new[i] = (a << 24) | (gray << 16) | (gray << 8) | gray;
         }
@@ -313,6 +322,13 @@
                 g = (int)((im_data[i] >> 8) & 0xff);
                 r = (int)((im_data[i] >> 16) & 0xff);
                 a = (int)((im_data[i] >> 24) & 0xff);
+
+               if (a > 0 && a < 255)
+               {
+                       b = b * (255 / a);
+                       g = g * (255 / a);
+                       r = r * (255 / a);
+               }
                
                rr = (int)(((r + g + b)/3)+40);
                if (rr < 0) rr = 0;
@@ -323,6 +339,13 @@
                bb = (int)(((r + g + b)/3)+2);              
                if (bb < 0) bb = 0;
                if (bb > 255) bb = 255;
+
+               if (a >= 0 && a < 255)
+               {
+                       rr = (rr * a) / 255;
+                       gg = (gg * a) / 255;
+                       bb = (bb * a) / 255;
+               }
 
                 im_data_new[i] = (a << 24) | (rr << 16) | (gg << 8) | bb;
         }



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to