Req #63814 [Wfx]: angles parameters in imagefilledarc are integers, they should be float

From: Date: Wed, 02 Jan 2013 09:19:43 +0000
Subject: Req #63814 [Wfx]: angles parameters in imagefilledarc are integers, they should be float
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-175691@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=63814&edit=1

 ID:                 63814
 Updated by:         ab@php.net
 Reported by:        webmaster at fxtop dot com
 Summary:            angles parameters in imagefilledarc are integers,
                     they should be float
 Status:             Wont fix
 Type:               Feature/Change Request
 Package:            GD related
 Operating System:   Windows
 PHP Version:        5.4.9
 Block user comment: N
 Private report:     N

 New Comment:

Of course you can discuss that on https://bitbucket.org/pierrejoye/gd-libgd , but
i don't think it's possible to get around that without using some anti aliasing technics.
Also you might want to take a look at the Cairo binding which provides a vector graphics API.


Previous Comments:
------------------------------------------------------------------------
[2012-12-28 14:12:53] webmaster at fxtop dot com

Hello, thanks for your investigation.
I don't blame that coordinates in pixel are integers, that's normal.
The problem is that angles are integers, which is an undue limitation : angles are rounded to
nearest degree.  In astronomy, they deal with seconds of arc, which is 1/3600 of a degree. 

If problem is inside an external library, it should be reported to that library.
What is the proper website to report such limitation ?
Regards

------------------------------------------------------------------------
[2012-12-28 10:57:57] ab@php.net

That's right, gd takes only integers for coordinates as they're literally pixels. See here
for arcs

http://lxr.php.net/xref/PHP_5_4/ext/gd/libgd/gd.h#546

If you work with float data, you probably will need to do conversion from/to int.

------------------------------------------------------------------------
[2012-12-20 15:24:21] remi@php.net

the gd extension is mostly a wrapper for gd library.

As gd library doesn't accept float values for this comment, I think this is not possible.

------------------------------------------------------------------------
[2012-12-20 12:32:55] webmaster at fxtop dot com

Description:
------------
see sample result at
http://mon-convertisseur.fr/php/imgangle.php?DEGRE=172.3

angles are truncated to nearest integer, in imagefilledarc function, they shouldn't

you can change parameter if you like

---
From manual page: http://www.php.net/function.imagefilledarc#refsect1-function.imagefilledarc-description
---



Test script:
---------------
header("Content-type: image/jpeg");

if (isset($_GET["DEGRE"])){ $lDegre=$_GET["DEGRE"];}
$lSizeX=916;
$lSizeY=945;
$image  = imagecreatetruecolor($lSizeX, $lSizeY);
$colorGreen = imagecolorallocate($image, 0, 255, 0);
		
// background coming from http://commons.wikimedia.org/wiki/File:Protractor_katomierz.jpg
with some little changes
$fond=imagecreatefromjpeg("Protractor_katomierz_tourne05b.jpg");

//HERE I ROUND DEGRE PARAMETER BECAUSE imagefilledarc only accept integers (I prefer it rounded than
truncated)
$lNumDegre=round($lDegre);
$lResult|=imagefilledarc ($image , 460 , 474 , 2*430 , 2*430  , -$lNumDegre , 0, $colorGreen ,
IMG_ARC_PIE );
$lResult|=imagecopymerge($image, $fond, 0, 0, 0 , 0, $lSizeX,$lSizeY,75);
imagejpeg($image, "temp.jpg");
imagedestroy($image);
echo file_get_contents("temp.jpg");

Expected result:
----------------
imagefilledarc should accept float parameters for "start" and "end" parameters.
As you can see on sample at http://mon-convertisseur.fr/php/imgangle.php?DEGRE=172.3
green backgound allways fall on a degre graduation  of the protactor. 




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=63814&edit=1


Thread (5 messages)

« previous php.bugs (#175691) next »