aggdraw使用说明
   1

aggdraw 模块在 AGG 库之上实现了基本的 WCK 2D 绘图接口。该库提供高质量的绘图、抗锯齿和 alpha 合成。

官方文档: https://aggdraw.readthedocs.io/en/latest/
Github: https://github.com/pytroll/aggdraw

安装

pip install aggdraw

说明

官方文档写得比较简单。我这里记录了下自己用到过的方法,以及参数说明。本文参考aggdraw源码

注意:

1、当前文档参考的1.3.16版本。如果版本不同可能会有差异。
2、参数需按照顺序传入。

aggdraw创建图片的大致流程,先创建Image对象,再创建Draw对象。然后创建画笔和刷子,这里画笔是用于边框绘制,刷子用于填充形状内部区域,然后绘制形状,最后调用flush()刷新到Image对象。

程序示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
import aggdraw
from PIL import Image

img = Image.new('RGBA', (500, 300), 'white')
draw = aggdraw.Draw(img)

p = aggdraw.Pen("#000")  # 黑色笔
b = aggdraw.Brush("#aaa")  # 灰色刷子

draw.line((0, 0, 500, 300), p)

draw.rectangle((10, 10, 200, 200), p, b)
draw.flush()

img.show()

参考

传入参数,需按照表格从上到下顺序。

Draw

创建一个绘图对象。

参数 说明
img 传入PIL.Image.Image对象

Draw的方法包括:line、polygon、rectangle、rounded_rectangle、text、textsize、path、symbol、arc、chord、ellipse、pieslice、settransform、setantialias、flush、expose、clear、frombytes、tobytes。
以下只记录我用到的。

Pen

画笔,用于绘制边框和线。

参数 说明
color 画笔颜色 tuple (R, G, B) 或者 “#RGB”
width 绘制出的线的宽度。默认1。
opacity 透明度。默认255。

Brush

刷子,用于绘制边框和线。

参数 说明
color 画笔颜色 tuple (R, G, B) 或者 “#RGB”
opacity 透明度。默认255。

Brush

刷子,用于绘制边框和线。

参数 说明
color 画笔颜色 tuple (R, G, B) 或者 “#RGB”
opacity 透明度。默认255。

line

绘制线段

参数 说明
xy (x, y, x, y, …)
pen 画笔
1
2
3
pen = aggdraw.Pen("red")
draw.line((x0, y0, x1, y1), pen)
draw.line((x0, y1, x1, y0), pen)

polygon

绘制多边形

参数 说明
xy (x, y, x, y, …)
pen 画笔
brush 刷子

rectangle

绘制矩形

参数 说明
xy (x, y, x, y, …)
pen 画笔
brush 刷子

text

绘制文字

参数 说明
xy (x, y)
text 要绘制的文字
font 字体 aggdraw.Font()
站长微信
请备注来意
二维码