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