我draw.text()
用来在画布上绘制一些文本。但该函数似乎只接受 3 个参数 x、y 和 body,因此无法指定什么字体、颜色等。可能我在这里遗漏了一些东西,因为这是非常基本的功能。我错过了什么?
问问题
3415 次
1 回答
9
使用wand.drawing.Drawing
,您需要构建绘图对象的“上下文”。字体样式、系列、粗细、颜色等等,可以通过直接在draw
对象实例上设置属性来定义。
from wand.image import Image
from wand.color import Color
from wand.drawing import Drawing
from wand.display import display
with Image(width=200, height=150, background=Color('lightblue')) as canvas:
with Drawing() as context:
context.fill_color = Color('orange')
context.stroke_color = Color('brown')
context.font_style = 'italic'
context.font_size = 24
context.text(x=25,
y=75,
body="Hello World!")
context(canvas)
canvas.format = "png"
display(canvas)
但是,如果您的draw
对象已经具有矢量属性怎么办?
这是Drawing.push()
&Drawing.pop()
可用于管理您的绘图堆栈的地方。
# Default attributes for drawing circles
context.fill_color = Color('lime')
context.stroke_color = Color('green')
context.arc((75, 75), (25, 25), (0, 360))
# Grow context stack for text style attributes
context.push()
context.fill_color = Color('orange')
context.stroke_color = Color('brown')
context.font_style = 'italic'
context.font_size = 24
context.text(x=25,
y=75,
body="Hello World!")
# Return to previous style attributes
context.pop()
context.arc((175, 125), (150, 100), (0, 360))
于 2015-06-02T14:54:41.660 回答