iliaa Sun Mar 30 15:48:14 2003 EDT Modified files: (Branch: PHP_4_3) /php4/ext/gd/libgd gd.c Log: MFH Index: php4/ext/gd/libgd/gd.c diff -u php4/ext/gd/libgd/gd.c:1.24.2.6 php4/ext/gd/libgd/gd.c:1.24.2.7 --- php4/ext/gd/libgd/gd.c:1.24.2.6 Tue Mar 11 20:02:40 2003 +++ php4/ext/gd/libgd/gd.c Sun Mar 30 15:48:14 2003 @@ -1723,90 +1723,76 @@ } } -void -gdImageFillToBorder (gdImagePtr im, int x, int y, int border, int color) +void gdImageFillToBorder (gdImagePtr im, int x, int y, int border, int color) { - int lastBorder; - /* Seek left */ - int leftLimit, rightLimit; - int i; - leftLimit = (-1); - if (border < 0) - { - /* Refuse to fill to a non-solid border */ - return; - } - for (i = x; (i >= 0); i--) - { - if (gdImageGetPixel (im, i, y) == border) - { - break; - } - gdImageSetPixel (im, i, y, color); - leftLimit = i; - } - if (leftLimit == (-1)) - { - return; - } - /* Seek right */ - rightLimit = x; - for (i = (x + 1); (i < im->sx); i++) - { - if (gdImageGetPixel (im, i, y) == border) - { - break; - } - gdImageSetPixel (im, i, y, color); - rightLimit = i; - } - /* Look at lines above and below and start paints */ - /* Above */ - if (y > 0) - { - lastBorder = 1; - for (i = leftLimit; (i <= rightLimit); i++) - { - int c; - c = gdImageGetPixel (im, i, y - 1); - if (lastBorder) - { - if ((c != border) && (c != color)) - { - gdImageFillToBorder (im, i, y - 1, - border, color); - lastBorder = 0; + int lastBorder; + /* Seek left */ + int leftLimit = -1, rightLimit; + int i; + + if (border < 0) { + /* Refuse to fill to a non-solid border */ + return; + } + + if (x >= im->sx) { + x = im->sx - 1; + } + if (y >= im->sy) { + y = im->sy - 1; + } + + for (i = x; i >= 0; i--) { + if (gdImageGetPixel(im, i, y) == border) { + break; } - } - else if ((c == border) || (c == color)) - { - lastBorder = 1; - } - } - } - /* Below */ - if (y < ((im->sy) - 1)) - { - lastBorder = 1; - for (i = leftLimit; (i <= rightLimit); i++) - { - int c; - c = gdImageGetPixel (im, i, y + 1); - if (lastBorder) - { - if ((c != border) && (c != color)) - { - gdImageFillToBorder (im, i, y + 1, - border, color); - lastBorder = 0; + gdImageSetPixel(im, i, y, color); + leftLimit = i; + } + if (leftLimit == -1) { + return; + } + /* Seek right */ + rightLimit = x; + for (i = (x + 1); i < im->sx; i++) { + if (gdImageGetPixel(im, i, y) == border) { + break; + } + gdImageSetPixel(im, i, y, color); + rightLimit = i; + } + /* Look at lines above and below and start paints */ + /* Above */ + if (y > 0) { + lastBorder = 1; + for (i = leftLimit; i <= rightLimit; i++) { + int c = gdImageGetPixel(im, i, y - 1); + if (lastBorder) { + if ((c != border) && (c != color)) { + gdImageFillToBorder(im, i, y - 1, border, color); + lastBorder = 0; + } + } else if ((c == border) || (c == color)) { + lastBorder = 1; + } + } + } + /* Below */ + if (y < ((im->sy) - 1)) { + lastBorder = 1; + for (i = leftLimit; i <= rightLimit; i++) { + int c = gdImageGetPixel(im, i, y + 1); + + if (lastBorder) { + if ((c != border) && (c != color)) { + gdImageFillToBorder(im, i, y + 1, border, color); + lastBorder = 0; + } + } else if ((c == border) || (c == color)) { + lastBorder = 1; + } } - } - else if ((c == border) || (c == color)) - { - lastBorder = 1; - } } - } } void
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php