当stroke_width>时,Python魔杖绘制多边形而不是矩形。 2

时间:2015-09-04 15:56:08

标签: python wand

我不确定我做错了什么,但这真的很奇怪。 我不确定是否应该向魔杖的Git存储库提交新问题。

编辑:我正在尝试绘制一个矩形。

请考虑以下代码:

from wand.drawing import Drawing
from wand.color import Color
from wand.image import Image
def drawer():
    square = Drawing()
    square.fill_color = Color('#fff')
    square.stroke_width = 4
    square.stroke_color = Color('red')
    square.rectangle(left=100, top=100, width=100, height=100)
    return square

im = Image(width=500, height=500)
sq = drawer()
sq.draw(im)
im.save(filename='test1.png')

这输出:

weird image 1

从我尝试过的错误来看,如果square.stroke_width小于或等于2,就不会发生这种情况。

我不确定它是魔杖的错误还是我做错了。

3 个答案:

答案 0 :(得分:1)

看起来你有孤立的绘图实例。 Wand利用python的with ... as ... :关键字管理上下文&资源。实施例...

from wand.drawing import Drawing
from wand.color import Color
from wand.image import Image

class Drawer(Drawing):
    def __enter__(self):
        super(Drawing, self).__enter__()
        self.fill_color = Color('#fff')
        self.stroke_width = 4
        self.stroke_color = Color('red')
        self.rectangle(left=100, top=100, width=100, height=100)
        return self

with Image(width=500, height=500) as im:
    with Drawer() as sq:
        sq(im)
    im.save(filename='/tmp/test1.png')

rectangel

答案 1 :(得分:0)

根据http://docs.wand-py.org/en/0.4.1/guide/draw.html,它应该可以正常工作。如果您转到页面底部,则会显示如何绘制多边形。与您的代码看起来相比,它应该可以正常工作。我不知道什么是错的,但我很确定你的代码没问题。

答案 2 :(得分:0)

我已经弄明白了。

libmagickwand-dev

所以我更新了它。按照here提供的说明添加

$ python -m wand.version -v Wand 0.4.2 ImageMagick 6.7.7-10 2014-03-06 Q16 http://www.imagemagick.org $ apt-cache show libmagickwand-dev | grep Version Version: 8:6.7.7.10-6ubuntu3 到我的环境变量。 它起作用了。

export MAGICK_HOME=/usr/local/lib/

enter image description here