写点什么

软件测试|不会吧,你还不知道用 pillow 绘制图像?

  • 2023-11-15
    北京
  • 本文字数:1256 字

    阅读完需:约 4 分钟

前言

我们之前做数据可视化分享的时候,讲解了使用 pyecharts 绘制图像的方法,比如绘制柱状图,饼状图,折线图等,但是,我们如果要绘制不定形状的图像,应该怎么去绘制呢,当然,还是要使用到我们的神器 pillow 来绘制。下面我们就来介绍使用 pillow 来绘制各种类型的图像。


pillow 绘制图像,需要引入 ImageDraw 类来进行图像绘制。

绘制图形

绘制图形之前,我们先要生成一个底图,用来绘制我们的图形,代码如下:


from PIL import Image, ImageDraw
image = Image.new('RGB', (600, 400), 'lightgrey')draw = ImageDraw.Draw(image)
复制代码


ImageDraw 类给我们提供了丰富的选择,支持我们绘制圆弧,饼图,折线图,矩形图,多边形等方法,下面我们来一一介绍:


  1. 绘制线形图


我们可以绘制直线和折线图,代码如下:


draw.line((50, 50, 100, 150), fill='green', width=6)draw.line((50, 200, 75, 300, 100, 250, 75, 200), fill='red', width=10, joint='curve')
image.save('imagedraw_lines.png')
复制代码


绘制的图形如下:



  1. 绘制多边形


我们可以通过调用 polygon()和 regular_polygon 来绘制多边形和正多边形,代码如下:


draw.polygon((150, 50, 220, 150, 250, 50), fill='purple')draw.regular_polygon((200, 300, 75), n_sides=5, rotation=10, fill='green')
image.save('imagedraw_polygon.png')
复制代码


绘制图像如下:



  1. 绘制矩形


我们可以通过 rectangle()方法来绘制矩形,代码如下:


#绘制矩形draw.rectangle((100,100,120,150),fill=(0,255,0),outline=(255,0,0))#绘制正方形draw.rectangle(((200,200),(250,250)),fill=None,outline=(0,0,255),width=5)
复制代码


绘制图像如下:



  1. 绘制椭圆形与圆形


我们可以使用 ellipse()方法来绘制椭圆形,代码如下:


# 绘制椭圆draw.ellipse((300, 50, 450, 150), outline='red', width=4)# 绘制圆形draw.ellipse((200, 200, 250, 250), outline='blue', width=3)
复制代码


绘制的图形如下:



  1. 绘制饼状图,弧线及弦线


我们可以通过 arc()绘制弧线,通过 chord()绘制弦线,通过 pieslice()绘制饼状图,示例代码如下:


draw.arc((300, 200, 450, 350), start=90, end=200, fill='yellow', width=4)draw.chord((400, 200, 550, 350), start=90, end=200, fill='cyan')draw.pieslice((500, 200, 650, 350), start=90, end=200, fill='magenta')
复制代码


绘制的图像如下:


绘制文字图

Pillow 通过 ImaegFont 模块(用于选择字体)和 ImageDraw 模块提供处理文本的功能,绘制文字图形时,我们需要引入字体,可以下载或者添加系统的字体路径,指定字体,这里我们下载字体文件并导入来绘制文字图。


绘制文字图时,我们需要调用 text()方法,示例代码如下:


font_style = ImageFont.truetype("font/SimHei.ttf", 20, encoding="utf-8")draw.text((100,100), '拜仁慕尼黑', font=font_style, fill='blue')draw.text((200,250), 'forever no.1', font=font_style, fill='red')
复制代码


绘制图像如下:


总结

本篇文章主要介绍了使用 pillow 绘制不同形状的图形,以及绘制文字图形的方法,希望能帮助大家更了解 pillow 模块的使用,方便大家的学习和工作!


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|不会吧,你还不知道用pillow绘制图像?_霍格沃兹测试开发学社_InfoQ写作社区