diff options
| -rw-r--r-- | ext/gd/libgd/gd.c | 4 | ||||
| -rw-r--r-- | ext/gd/tests/libgd00191.phpt | 23 |
2 files changed, 26 insertions, 1 deletions
diff --git a/ext/gd/libgd/gd.c b/ext/gd/libgd/gd.c index a2677c11dd..1694ec1d91 100644 --- a/ext/gd/libgd/gd.c +++ b/ext/gd/libgd/gd.c @@ -1804,7 +1804,9 @@ void gdImageFilledEllipse (gdImagePtr im, int mx, int my, int w, int h, int c) a=w>>1; b=h>>1; - gdImageLine(im, mx-a, my, mx+a, my, c); + for (x = mx-a; x <= mx+a; x++) { + gdImageSetPixel(im, x, my, c); + } mx1 = mx-a;my1 = my; mx2 = mx+a;my2 = my; diff --git a/ext/gd/tests/libgd00191.phpt b/ext/gd/tests/libgd00191.phpt new file mode 100644 index 0000000000..6e3ffd51b1 --- /dev/null +++ b/ext/gd/tests/libgd00191.phpt @@ -0,0 +1,23 @@ +--TEST-- +libgd FS#191 (A circle becomes square) +--SKIPIF-- +<?php + if (!extension_loaded('gd')) die("skip gd extension not available\n"); + if (!GD_BUNDLED) die("skip requires bundled GD library\n"); +?> +--FILE-- +<?php +$im = imagecreatetruecolor(100, 100); +imagefilledrectangle($im, 0, 0, 100, 100, imagecolorallocate($im, 255, 255, 255)); +imagesetthickness($im, 20); +imagefilledellipse($im, 30, 50, 20, 20, imagecolorallocate($im, 0, 0, 0)); +$index = imagecolorat($im, 12, 28); +$arr = imagecolorsforindex($im, $index); +if ($arr['red'] == 255 && $arr['green'] == 255 && $arr['blue'] == 255) { + echo "Ok"; +} else { + echo "failed"; +} +?> +--EXPECT-- +Ok |
