是否有可能在Imagick中绘制一个明显的圆圈?

时间:2016-08-03 14:58:11

标签: php imagick

我为特定任务构建图形编辑器。用户上传扫描的硬币和修剪背景。前端部分工作得很好,但我有后端部分的问题。我使用php Imagick跟随算法:

  1. 创建一个大小等于硬币和白色背景作为面具的透明圆圈
  2. 定位此圈子
  3. 使用compositeImage合并硬币图像和遮罩
  4. 我当前的版本使用外部png掩码文件,因为我找不到如何绘制透明圆的解决方案。 SO的所有示例都使用反向方法 - 它们绘制一个透明背景的白色圆圈。

    UPD:这是一个有效的例子。

    $draw = new \ImagickDraw();
    $draw->setFillColor(new ImagickPixel('#ffff00'));
    $draw->circle(101, 101, 200, 100);
    
    $imagick = new \Imagick();
    $imagick->newImage(202, 202, new ImagickPixel('#ffffff'));
    $imagick->setImageFormat("png");
    $imagick->despeckleimage();
    $imagick->drawImage($draw);
    $imagick->transparentPaintImage('#ffff00', 0, 1, false);
    
    header("Content-Type: image/png");
    echo $imagick->getImageBlob();
    

0 个答案:

没有答案