Python 当 stroke_width > 2 时魔杖绘制多边形而不是矩形
Python wand drawed polygons instead of rectangle when stroke_width > 2
我不确定我做错了什么,但这真的很奇怪。
不确定我是否应该向 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')
这输出:
根据我试错的结果,如果 square.stroke_width
小于或等于 2,则不会发生这种情况。
不知道是Wand的bug还是我操作有误
根据 http://docs.wand-py.org/en/0.4.1/guide/draw.html 它应该可以正常工作。如果您转到页面底部,它会显示如何绘制多边形。与您的代码相比,它应该可以正常工作。我不知道出了什么问题,但我很确定你的代码没问题。
看起来您有孤立的绘图实例。 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')
我已经弄明白了。 ubuntu 的 APT 存储库中的 libmagickwand-dev
已过时。
$ 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
所以我更新了它。按照 here 提供的说明,我添加了
export MAGICK_HOME=/usr/local/lib/
到我的环境变量。
它奏效了。
$ python -m wand.version -v
Wand 0.4.1
ImageMagick 6.9.2-0 Q16 x86_64 2015-09-08 http://www.imagemagick.org
我不确定我做错了什么,但这真的很奇怪。 不确定我是否应该向 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')
这输出:
根据我试错的结果,如果 square.stroke_width
小于或等于 2,则不会发生这种情况。
不知道是Wand的bug还是我操作有误
根据 http://docs.wand-py.org/en/0.4.1/guide/draw.html 它应该可以正常工作。如果您转到页面底部,它会显示如何绘制多边形。与您的代码相比,它应该可以正常工作。我不知道出了什么问题,但我很确定你的代码没问题。
看起来您有孤立的绘图实例。 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')
我已经弄明白了。 ubuntu 的 APT 存储库中的 libmagickwand-dev
已过时。
$ 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
所以我更新了它。按照 here 提供的说明,我添加了
export MAGICK_HOME=/usr/local/lib/
到我的环境变量。
它奏效了。
$ python -m wand.version -v
Wand 0.4.1
ImageMagick 6.9.2-0 Q16 x86_64 2015-09-08 http://www.imagemagick.org