使用PHP ImageMagick绘制馅饼

时间:2009-06-27 00:04:10

标签: php graphics imagemagick draw

有没有办法让GD的函数imagefilledarc()'s导致使用PHP ImageMagick?到目前为止,我环顾四周但尚未找到令人满意的解决方案。我希望它支持透明度,并用它来绘制馅饼。

4 个答案:

答案 0 :(得分:1)

你最好的选择是使用ImageMagick :: Draw。它有一个弧命令;而不是指定中心,您指定边界矩形。你只需要在它之前添加一个命令来设置填充,也可以在它之后添加一个命令来关闭填充。

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

答案 1 :(得分:1)

据我所知,ImagickDraw :: arc是唯一的方法(除非你想创建一个逐像素绘制它的函数)。但是为了让它像gd一样工作,你只需做一些小改动。例如,这个:

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

应该等同于此(我还没有测试过):

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

答案 2 :(得分:1)

不完全是您的要求,但使用Google Chart API http://code.google.com/apis/chart/

绘制饼图很容易

alt text

答案 3 :(得分:1)

由于这篇文章不时遭到googlers的攻击,并且没有有效答案,我想我应该给出一些提示。有一个名为Imagine(https://github.com/avalanche123/Imagine)的优秀库,它使用相同的调用支持最流行的PHP图像库(ImageMagick,GraphicsMagick和GD)。

它的API包含一个pieSlice函数(https://imagine.readthedocs.io/en/stable/_static/API/Imagine/Draw/DrawerInterface.html#method_pieSlice)。该函数的来源是https://github.com/avalanche123/Imagine/blob/develop/src/Imagick/Drawer.php#L242