summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorTakeshi Abe <tabe@php.net>2009-01-19 15:43:48 +0000
committerTakeshi Abe <tabe@php.net>2009-01-19 15:43:48 +0000
commitc422d15d0e97335c6d7e9cc8b0f5c48f46c55b6d (patch)
treee1a16c46f4b043296f954f954b4178bc2496e628 /ext
parent8f9ec4238fa879ab7bc4adb5c42a222b929c3b60 (diff)
downloadphp-git-c422d15d0e97335c6d7e9cc8b0f5c48f46c55b6d.tar.gz
MFH: fixed the bug of libgd #191 (A circle becomes square)
Diffstat (limited to 'ext')
-rw-r--r--ext/gd/libgd/gd.c4
-rw-r--r--ext/gd/tests/libgd00191.phpt23
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