]> granicus.if.org Git - php/commitdiff
MFH: fixed the bug of libgd #191 (A circle becomes square)
authorTakeshi Abe <tabe@php.net>
Mon, 19 Jan 2009 15:43:48 +0000 (15:43 +0000)
committerTakeshi Abe <tabe@php.net>
Mon, 19 Jan 2009 15:43:48 +0000 (15:43 +0000)
ext/gd/libgd/gd.c
ext/gd/tests/libgd00191.phpt [new file with mode: 0644]

index a2677c11dd7bd1137b8189831234a474c12cf4e8..1694ec1d910828e525df1e04ff9f1a9e2afd8be9 100644 (file)
@@ -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 (file)
index 0000000..6e3ffd5
--- /dev/null
@@ -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