2015-09-04 27 views
2

我不知道我做錯了什麼,但這真是奇怪。 不確定我是否應該向魔杖的Git存儲庫提交新問題。Python魔杖繪製多邊形而不是矩形當stroke_width> 2

編輯:我想繪製一個矩形。

考慮下面的代碼:

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

從我嘗試和error'd,如果square.stroke_width是不會出現這種情況小於或等於2.

我不確定是魔杖的錯誤還是我做錯了什麼。

+1

僅供參考我只是用魔杖0.4.1試過這種的Python 3.4.3下,你的代碼工作正常。 –

+0

這裏只是順便提一下,但是您可能想要對結果輸出做更具體的說明,因爲矩形是一種多邊形。實際上,多餘的線條伸出來,我甚至不會稱之爲多邊形。 – TigerhawkT3

+0

用python 3.4或2.7嘗試不同的'virtualenv',都是這樣的。也嘗試在不同的機器上。 – esfy

回答

0

我已經想通了。 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 

enter image description here

0

它應該按照http://docs.wand-py.org/en/0.4.1/guide/draw.html正常工作。如果你到頁面的底部,它會顯示如何繪製多邊形。與你的代碼看起來相比,它應該可以正常工作。我不知道什麼是錯,但我很確定你的代碼是確定的。

+1

我試圖繪製一個矩形,不繪製多邊形.... – esfy

+1

如果您正在繪製矩形使用**矩形()**方法,它在我的答案中的鏈接頁面上。我只是假設,因爲你使用多邊形所需的相同代碼:) –

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

+0

仍然無法正常工作。你使用什麼版本?我使用魔杖0.4.1和Python 3.4 :( – esfy

+0

看起來有些bug,我在存儲庫中提出了一個問題,謝謝! – esfy