【发布时间】:2015-03-23 18:55:49
【问题描述】:
我正在处理一项需要解析 SVG 路径数据以在 Imagick 中用作剪辑蒙版的任务......现在,我在尝试使用 setVectorGraphics 方法时遇到错误 - 以下代码会产生类似的错误消息:
致命错误:未捕获的异常“ImagickException”和消息“无法绘制图像”
$draw = new \ImagickDraw();
$draw->setFillColor("red");
$draw->circle(20, 20, 50, 50);
$draw->setFillColor("blue");
$draw->circle(50, 70, 50, 50);
$draw->rectangle(50, 120, 80, 150);
//Get the drawing as a string
$SVG = $draw->getVectorGraphics();
$draw2 = new \ImagickDraw();
$draw2->setVectorGraphics($SVG);
$imagick = new \Imagick();
$imagick->newImage(200, 200, 'white');
$imagick->setImageFormat("png");
$imagick->drawImage($draw2);
header("Content-Type: image/png");
echo $imagick->getImageBlob();
(代码来自this demo)
我很确定 Imagick 和 ImagickDraw 的用法是正确的……这是 Imagick 库中的错误吗?如果是这样,有没有办法解决这个问题?
谢谢!
【问题讨论】:
-
我很确定对 ImageMagick 的库调用不起作用,这就是为什么在 phpimagick.com/ImagickDraw 上无法查看该示例,因为它不起作用。有人需要在imagemagick.org/discourse-server/viewforum.php?f=3 向上游报告问题,这可能涉及用 C 编写一个示例,这就是为什么它在我的待办事项清单上,而不是已完成的事项清单上。
-
@Danack 不用担心 - 下面介绍的解决方案是一种可接受的解决方法。感谢优秀的图书馆和教程!
标签: php svg imagemagick imagick