gdip-pixbuf-loader r17 - trunk/src
- From: doml svn gnome org
- To: svn-commits-list gnome org
- Subject: gdip-pixbuf-loader r17 - trunk/src
- Date: Mon, 18 Feb 2008 23:44:56 +0000 (GMT)
Author: doml
Date: Mon Feb 18 23:44:55 2008
New Revision: 17
URL: http://svn.gnome.org/viewvc/gdip-pixbuf-loader?rev=17&view=rev
Log:
don't write out of bounds
Modified:
trunk/src/io-gdip.c
Modified: trunk/src/io-gdip.c
==============================================================================
--- trunk/src/io-gdip.c (original)
+++ trunk/src/io-gdip.c Mon Feb 18 23:44:55 2008
@@ -185,18 +185,22 @@
guchar *b = cursor + (y * rowstride + (x * n_channels));
pixel = io_gdip_bitmap_get_pixel (bitmap, x, y);
-
+
/* un-premultiply alpha */
alpha = (pixel & 0xff000000) >> 24;
if (alpha == 0)
{
- b[0] = b[1] = b[2] = b[3] = 0;
+ b[0] = b[1] = b[2];
}
else
{
b[0] = (((pixel & 0xff0000) >> 16) * 255 + alpha / 2) / alpha;
b[1] = (((pixel & 0x00ff00) >> 8) * 255 + alpha / 2) / alpha;
b[2] = (((pixel & 0x0000ff) >> 0) * 255 + alpha / 2) / alpha;
+ }
+
+ if (has_alpha)
+ {
b[3] = alpha;
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]