2009-06-27 4 views

Antwort

0

Da dieser Beitrag von Googler ab und zu getroffen wird, und haben keine gültige Antwort, ich dachte, ich sollte g Ich habe ein paar Hinweise. Es gibt eine ausgezeichnete Bibliothek namens Imagine (https://github.com/avalanche123/Imagine), die die beliebtesten PHP-Bildbibliotheken (ImageMagick, GraphicsMagick und GD) unter Verwendung der gleichen Aufrufe unterstützt.

Es ist API enthält eine pieSlice-Funktion (http://imagine.readthedocs.org/en/latest/api/Draw/drawer_interface.html#Imagine\Draw\DrawerInterface::pieSlice). Die Quelle für diese Funktion ist https://github.com/avalanche123/Imagine/blob/develop/lib/Imagine/Imagick/Drawer.php#L219

1

Am besten verwenden Sie ImageMagick :: Draw. Es hat einen Bogenbefehl; Anstatt das Zentrum anzugeben, geben Sie das Begrenzungsrechteck an. Sie müssen nur einen Befehl davor einfügen, um die Füllung festzulegen und eventuell danach, um die Füllung zu schließen.

http://us.php.net/manual/en/function.imagickdraw-arc.php

+0

Es funktioniert nicht auf die gleiche Weise. Dieser Befehl macht grundsätzlich eine Ellipse innerhalb der Begrenzungsbox, schneidet an einer Linie zwischen den gegebenen Graden und löscht eines der Stücke. – runfalk

1

Soweit ich weiß ImagickDraw :: Bogen ist der einzige Weg, es zu tun (es sei denn Sie eine Funktion erstellen möchten, die sie Pixel für Pixel zeichnet). Aber damit es genauso funktioniert wie gd, müssen Sie nur geringfügige Änderungen vornehmen. Zum Beispiel diese:

imagearc($image, $cx, $cy, $width, $height, $start, $end, $color); 

Sollte entspricht dies (ich habe es nicht getestet):

ImagickDraw::setStrokeColor($imageMagickColor); //I don't remember how to allocate the color 
ImagickDraw::arc($cx-$width/2, $cy-$height/2, $cx+$width/2, $cy+$height/2, $start, $end);