首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >软件测试|不会吧,你还不知道用pillow绘制图像?

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

原创
作者头像
霍格沃兹测试开发Muller老师
发布于 2023-03-05 02:29:07
发布于 2023-03-05 02:29:07
51100
代码可运行
举报
运行总次数:0
代码可运行

前言

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

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

绘制图形

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
from PIL import Image, ImageDraw

image = Image.new('RGB', (600, 400), 'lightgrey')
draw = ImageDraw.Draw(image)

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

  1. 绘制线形图

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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来绘制多边形和正多边形,代码如下:

代码语言:txt
AI代码解释
复制
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()方法来绘制矩形,代码如下:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
#绘制矩形
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()方法来绘制椭圆形,代码如下:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
# 绘制椭圆
draw.ellipse((300, 50, 450, 150), outline='red', width=4)
# 绘制圆形
draw.ellipse((200, 200, 250, 250), outline='blue', width=3)

绘制的图形如下:

在这里插入图片描述
在这里插入图片描述
  1. 绘制饼状图,弧线及弦线

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

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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()方法,示例代码如下:

代码语言:python
代码运行次数:0
运行
AI代码解释
复制
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模块的使用,方便大家的学习和工作!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
深入剖析Python最强大图片处理模块---Pillow
Pillow作为一个图片模块。可谓是真的简便强大,它的前身是PIL,后来将他取代,现在的pillow 可谓是一家独大,好了,让我们来看看他的具体用法。
Python进阶者
2021/04/19
1.1K0
深入剖析Python最强大图片处理模块---Pillow
图像处理库Pillow(PIL)的使用-3(实例+详细注释+图片脚本)
Pillow 通过 ImageFilter 类来实现图像的增强效果,该类中集成了不同种类的滤波器,可以通过调用它们从而实现图像的平滑、锐化、边界增强等图像增强操作
laity
2025/02/25
5360
图像处理库Pillow(PIL)的使用-3(实例+详细注释+图片脚本)
10分钟学会pillow图像处理16式
PIL:Python Imaging Library,是Python环境下最受欢迎的图像处理库,木有之一。
lyhue1991
2020/07/28
7350
10分钟学会pillow图像处理16式
python数字图像处理(12):基本图形的绘制
skimage.draw.set_color(img, coords, color)
bear_fish
2018/09/19
1.8K0
python数字图像处理(12):基本图形的绘制
Python3 Pillow 安装
此外,Pillow 还提供了更多的功能和方法,包括图像旋转、调整亮度、对比度等操作。通过学习以上基本操作,可以逐步探索 Pillow 的更多功能。
很酷的站长
2023/09/07
6740
不可不知的WPF形状(Shape)
在WPF开发中经常需要进行绘制图形,可以利用Shape类型绘制基本的形状,而且Shape派生自FrameworkElement,属于UI元素范畴,可以直接利用XAML进行绘制。本文通过一些简单的小例子,简述如何通过Shape类绘制形状,仅供学习分享使用,如有不足之处,还请指正。
独立观察员
2024/11/23
3160
不可不知的WPF形状(Shape)
svg.js教程及使用手册详解(二)
上篇简要介绍了svg.js的基本信息和基本用法,这篇开始详细讲解svg.js的用法。
王金龙
2018/08/24
6.7K1
程序员的浪漫-用她的名字作画Python版
hello,大家好,我是一灰灰,之前介绍了一篇使用她的名字来画出她的美图的文章,其中主要使用的Java来实现的,今天呢,我们再来用Python来实现一下
一灰灰blog
2022/05/30
5990
【Python从入门到精通】(二十七)更进一步的了解Pillow吧!
本文是接上一篇❤️【Python从入门到精通】(二十六)用Python的PIL库(Pillow)处理图像真的得心应手❤️ 进一步介绍Pillow库的使用,本文将重点介绍一些高级特性:比如如何利用Pillow画图形(圆形,正方形),介绍通过Pillow库给图片添加水印;同时对上一篇文章未介绍的常用知识点进行补充说明。希望对读者朋友们有所帮助。
码农飞哥
2021/10/20
1K0
16 Python 基础: 重点知识点--Pygame的基础知识梳理
本文首发于腾讯云+社区,也可关注微信公众号【离不开的网】支持一下,就差你的关注支持了。
野原测试开发
2019/07/24
3.8K0
16 Python 基础: 重点知识点--Pygame的基础知识梳理
Python+Tkinter 图形化界面基础篇:添加图形和图像
在 Python 图形化界面开发中,添加图形和图像可以使你的应用程序更具吸引力和可交互性。本篇博客将介绍如何在 Tkinter 中添加图形元素、绘制基本图形以及显示图像。我们将详细讨论这些概念,并提供示例代码以帮助你更好地理解。
小蓝枣
2023/10/17
1.9K0
Python+Tkinter 图形化界面基础篇:添加图形和图像
Easy Games With Python and Pygame(二)- Pygame 绘制图形
pygame.draw可以用来绘制不同的形状,pygame.draw.cirle()可以用来绘制圆
RiemannHypothesis
2022/09/26
1.3K0
Easy Games With Python and Pygame(二)- Pygame 绘制图形
CSS样式clip-path绘制图形裁剪图片
发现clip-path绘制图形的网站 http://bennettfeely.com/clippy/ 专门介绍clip-path的使用,几乎任何形状都可以做出来,下面使用clip-path制作正三边形至正八边形以及其它图形的方法,并且有些正多边形需要通过一定的计算,顺便放了计算公式。通过应用这些正多边形和其它的形状的实现方法来学习clip-path这个样式。
小弟调调
2018/10/18
1.8K0
CSS样式clip-path绘制图形裁剪图片
Python PIL ImageDraw 和ImageFont模块学习
http://blog.csdn.net/dou_co/article/details/17618319
bear_fish
2018/09/19
4.4K0
Python PIL ImageDraw 和ImageFont模块学习
OpenCV 绘制图形
[【OpenCV3图像处理】绘图功能总结(直线,矩形,圆,椭圆,多边形,文字)]https://blog.csdn.net/u011574296/article/details/73332523
AI异构
2020/07/29
6350
OpenCV 绘制图形
Python PIL图像处理开发极简教程
PIL是python image libaray缩写,是python语言的图像处理库,很多时候对于一些简单的图像处理,我们经常使用的是其中一个fork项目pillow,它的github地址如下:
OpenCV学堂
2019/08/09
9770
Python  PIL图像处理开发极简教程
【STM32F429】第13章 ThreadX GUIX窗口任意位置绘制2D图形
最新教程下载:http://www.armbbs.cn/forum.php?mod=viewthread&tid=98429 第13章 ThreadX GUIX窗口任意位置绘制2D图形 本
Simon223
2020/12/29
8770
计算机视觉:2.6~4.5 颜色空间、数据结构与绘图
最常见的色彩空间就是RGB,人眼也是基于RGB的色彩空间去分辨颜色的。 OpenCV默认使用的是BGR。BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同。
DioxideCN
2022/08/05
1.1K0
计算机视觉:2.6~4.5 颜色空间、数据结构与绘图
SVG 入门指南(初学者入门必备)
SVG,即可缩放矢量图形(Scalable Vector Graphics),是一种 XML 应用,可以以一种简洁、可移植的形式表示图形信息。目前,人们对 SVG 越来越感兴趣。大多数现代浏览器都能显示 SVG 图形,并且大多数矢量绘图软件都能导出 SVG 图形。SVG 主要可以概括为以下几点:
前端小智@大迁世界
2020/07/29
3.6K0
SVG 入门指南(初学者入门必备)
软件测试|超好用超简单的Python GUI库——tkinter(十五)
上一篇文章我们介绍了tkinter的Canvas画布控件,并且使用画布控件绘制了线条,本篇文章我们将介绍使用Canvas绘制更多图形。
霍格沃兹测试开发Muller老师
2023/06/02
8860
推荐阅读
相关推荐
深入剖析Python最强大图片处理模块---Pillow
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档