有没有办法让GD的函数imagefilledarc()
's导致使用PHP ImageMagick?到目前为止,我环顾四周但尚未找到令人满意的解决方案。我希望它支持透明度,并用它来绘制馅饼。
答案 0 :(得分:1)
你最好的选择是使用ImageMagick :: Draw。它有一个弧命令;而不是指定中心,您指定边界矩形。你只需要在它之前添加一个命令来设置填充,也可以在它之后添加一个命令来关闭填充。
答案 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/
绘制饼图很容易
答案 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