【问题标题】:Drawing pies using PHP ImageMagick使用 PHP ImageMagick 绘制饼图
【发布时间】:2009-06-27 00:04:10
【问题描述】:

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

【问题讨论】:

    标签: php graphics imagemagick draw


    【解决方案1】:

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

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

    【讨论】:

    • 它的工作方式不同。该命令基本上在边界框内做一个椭圆,在给定度数之间的一条线上切割并删除其中一个。
    【解决方案2】:

    据我所知,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);
    

    【讨论】:

      【解决方案3】:

      不完全是你问的,但是用 Google Chart API http://code.google.com/apis/chart/987654321@绘制饼图很容易

      【讨论】:

        【解决方案4】:

        由于这篇文章时不时地受到 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

        【讨论】:

          猜你喜欢
          • 2023-03-20
          • 1970-01-01
          • 1970-01-01
          • 2014-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多