pajoye Fri Jan 19 15:16:46 2007 UTC
Modified files:
/php-src/ext/gd/libgd gd.c
Log:
- MFB: save/restore the alpha blending mode correctly in imagefill and
imagefilltoborder
http://cvs.php.net/viewvc.cgi/php-src/ext/gd/libgd/gd.c?r1=1.101&r2=1.102&diff_format=u
Index: php-src/ext/gd/libgd/gd.c
diff -u php-src/ext/gd/libgd/gd.c:1.101 php-src/ext/gd/libgd/gd.c:1.102
--- php-src/ext/gd/libgd/gd.c:1.101 Sat Jan 13 11:22:44 2007
+++ php-src/ext/gd/libgd/gd.c Fri Jan 19 15:16:46 2007
@@ -1802,10 +1802,8 @@
return;
}
- if (im->alphaBlendingFlag) {
- restoreAlphaBleding = 1;
- im->alphaBlendingFlag = 0;
- }
+ restoreAlphaBleding = im->alphaBlendingFlag;
+ im->alphaBlendingFlag = 0;
if (x >= im->sx) {
x = im->sx - 1;
@@ -1822,9 +1820,7 @@
leftLimit = i;
}
if (leftLimit == -1) {
- if (restoreAlphaBleding) {
- im->alphaBlendingFlag = 1;
- }
+ im->alphaBlendingFlag = restoreAlphaBleding;
return;
}
/* Seek right */
@@ -1869,9 +1865,7 @@
}
}
}
- if (restoreAlphaBleding) {
- im->alphaBlendingFlag = 1;
- }
+ im->alphaBlendingFlag = restoreAlphaBleding;
}
/*
@@ -1939,7 +1933,7 @@
do {
c = gdImageGetPixel(im, ix, iy);
if (c != oc) {
- return;
+ goto done;
}
gdImageSetPixel(im, ix, iy, nc);
} while(ix++ < (im->sx -1));
@@ -1947,11 +1941,11 @@
do {
c = gdImageGetPixel(im, ix, iy);
if (c != oc) {
- return;
+ goto done;
}
gdImageSetPixel(im, ix, iy, nc);
} while(ix++ < (im->sx -1));
- return;
+ goto done;
}
stack = (struct seg *)safe_emalloc(sizeof(struct seg),
((int)(im->sy*im->sx)/4), 1);
@@ -1992,6 +1986,8 @@
} while (x<=x2);
}
efree(stack);
+
+done:
im->alphaBlendingFlag = alphablending_bak;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php