lan*_*ng2 3 python imagemagick wand
我正在用draw.text()画布上画一些文字.但该功能似乎只需要3个参数x,y和body,所以没有办法指定什么字体,颜色等.可能我在这里缺少一些东西,因为这是非常基本的功能.我错过了什么?
有了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)
Run Code Online (Sandbox Code Playgroud)

但是如果你的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))
Run Code Online (Sandbox Code Playgroud)
