2009-06-27 9 views

Répondre

0

Depuis ce poste est touché par Googlers chaque maintenant et puis, et ne dispose pas d'une réponse valable, je me suis dit que je devrais g quelques indices. Il existe une excellente bibliothèque appelée Imagine (https://github.com/avalanche123/Imagine) qui supporte les bibliothèques d'images PHP les plus populaires (ImageMagick, GraphicsMagick et GD) en utilisant les mêmes appels. L'API comprend une fonction pieSlice (http://imagine.readthedocs.org/en/latest/api/Draw/drawer_interface.html#Imagine\Draw\DrawerInterface::pieSlice). La source de cette fonction est https://github.com/avalanche123/Imagine/blob/develop/lib/Imagine/Imagick/Drawer.php#L219

1

Votre meilleur pari serait d'utiliser ImageMagick :: Draw. Il a une commande d'arc; Au lieu de spécifier le centre, vous spécifiez le rectangle englobant. Vous avez juste besoin d'ajouter une commande avant de définir le remplissage, et peut-être après pour fermer le remplissage.

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

+0

Cela ne fonctionne pas de la même manière. Cette commande fait essentiellement une ellipse dans la boîte de délimitation, coupe à une ligne entre les degrés donnés et supprime l'une des pièces. – runfalk

1

Pour autant que je sais ImagickDraw :: arc est la seule façon de le faire (sauf si vous voulez créer une fonction qui dessine pixel par pixel). Mais pour le faire fonctionner de la même manière que gd, il suffit de faire des changements mineurs. Par exemple, ceci:

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

devrait être équivalent à cela (je ne l'ai pas testé):

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); 
1

Pas exactement ce que vous demandez, mais il est facile de dessiner des graphiques circulaires avec Google Chart API http://code.google.com/apis/chart/

alt text

+0

Ce n'est pas ce que je veux. Mais merci quand même. – runfalk

Questions connexes