diff src/image.c @ 54920:38cb79e68369

(PNG_BG_COLOR_SHIFT): Remove. (png_load): Fix calculation of transparent background color on X and W32 platforms.
author Kim F. Storm <storm@cua.dk>
date Fri, 16 Apr 2004 20:08:15 +0000
parents 5636e8542b77
children dda0bae93c73
line wrap: on
line diff
--- a/src/image.c	Fri Apr 16 20:07:49 2004 +0000
+++ b/src/image.c	Fri Apr 16 20:08:15 2004 +0000
@@ -51,7 +51,6 @@
 typedef struct x_bitmap_record Bitmap_Record;
 #define GET_PIXEL(ximg, x, y) XGetPixel(ximg, x, y)
 #define NO_PIXMAP None
-#define PNG_BG_COLOR_SHIFT 0
 
 #define RGB_PIXEL_COLOR unsigned long
 
@@ -69,7 +68,6 @@
 typedef struct w32_bitmap_record Bitmap_Record;
 #define GET_PIXEL(ximg, x, y) GetPixel(ximg, x, y)
 #define NO_PIXMAP 0
-#define PNG_BG_COLOR_SHIFT 0
 
 #define RGB_PIXEL_COLOR COLORREF
 
@@ -104,7 +102,6 @@
 
 #define GET_PIXEL(ximg, x, y) XGetPixel(ximg, x, y)
 #define NO_PIXMAP 0
-#define PNG_BG_COLOR_SHIFT 8
 
 #define RGB_PIXEL_COLOR unsigned long
 
@@ -1172,7 +1169,7 @@
 /* Return the `background' field of IMG.  If IMG doesn't have one yet,
    it is guessed heuristically.  If non-zero, XIMG is an existing
    XImage object (or device context with the image selected on W32) to
-   use for the heuristic.  */ 
+   use for the heuristic.  */
 
 RGB_PIXEL_COLOR
 image_background (img, f, ximg)
@@ -1205,7 +1202,7 @@
 
       if (free_ximg)
 	Destroy_Image (ximg, prev);
-      
+
       img->background_valid = 1;
     }
 
@@ -2990,7 +2987,7 @@
 	  non_default_colors = 1;
 	}
 
-      Create_Pixmap_From_Bitmap_Data (f, img, data, 
+      Create_Pixmap_From_Bitmap_Data (f, img, data,
 				      foreground, background,
 				      non_default_colors);
       xfree (data);
@@ -3857,7 +3854,7 @@
       /* Assemble the pixel color.  */
       return pr | pg | pb;
     }
-  
+
   for (p = ct_table[i]; p; p = p->next)
     if (p->r == r && p->g == g && p->b == b)
       break;
@@ -4968,7 +4965,7 @@
   x_destroy_x_image (ximg);
 
   /* X and W32 versions did it here, MAC version above.  ++kfs
-     img->width = width;   
+     img->width = width;
      img->height = height; */
 
   UNGCPRO;
@@ -5412,9 +5409,9 @@
 	      png_color_16 user_bg;
 
 	      bzero (&user_bg, sizeof user_bg);
-	      user_bg.red = color.red >> PNG_BG_COLOR_SHIFT;
-	      user_bg.green = color.green >> PNG_BG_COLOR_SHIFT;
-	      user_bg.blue = color.blue >> PNG_BG_COLOR_SHIFT;
+	      user_bg.red = color.red >> 8;
+	      user_bg.green = color.green >> 8;
+	      user_bg.blue = color.blue >> 8;
 
 	      fn_png_set_background (png_ptr, &user_bg,
 				     PNG_BACKGROUND_GAMMA_SCREEN, 0, 1.0);
@@ -5438,9 +5435,9 @@
 	  x_query_color (f, &color);
 
 	  bzero (&frame_background, sizeof frame_background);
-	  frame_background.red = color.red;
-	  frame_background.green = color.green;
-	  frame_background.blue = color.blue;
+	  frame_background.red = color.red >> 8;
+	  frame_background.green = color.green >> 8;
+	  frame_background.blue = color.blue >> 8;
 #endif /* HAVE_X_WINDOWS */
 
 #ifdef HAVE_NTGUI
@@ -5451,9 +5448,9 @@
 	  x_query_color (f, &color);
 #endif
 	  bzero (&frame_background, sizeof frame_background);
-	  frame_background.red = 256 * GetRValue (color);
-	  frame_background.green = 256 * GetGValue (color);
-	  frame_background.blue = 256 * GetBValue (color);
+	  frame_background.red = GetRValue (color);
+	  frame_background.green = GetGValue (color);
+	  frame_background.blue = GetBValue (color);
 #endif /* HAVE_NTGUI */
 
 #ifdef MAC_OS