python PIL图像处理模块中的ImageDraw类支持各种几何图形的绘制和文本的绘制,如直线、椭圆、弧、弦、多边形以及文字等。

下面直接通过示例来进行说明:

#-*- coding: UTF-8 -*-  import numpy as np
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFontdef draw_test():#生成深蓝色绘图画布array = np.ndarray((480, 640, 3), np.uint8)array[:, :, 0] = 0array[:, :, 1] = 0array[:, :, 2] = 100image = Image.fromarray(array)#创建绘制对象draw = ImageDraw.Draw(image)#绘制直线draw.line((20, 20, 150, 150), 'cyan')#绘制矩形draw.rectangle((100, 200, 300, 400), 'black', 'red')#绘制弧draw.arc((100, 200, 300, 400), 0, 180, 'yellow')draw.arc((100, 200, 300, 400), -90, 0, 'green')#绘制弦draw.chord((350, 50, 500, 200), 0, 120, 'khaki', 'orange')#绘制圆饼图draw.pieslice((350, 50, 500, 200), -150, -30, 'pink', 'crimson')#绘制椭圆draw.ellipse((350, 300, 500, 400), 'yellowgreen', 'wheat')#外切矩形为正方形时椭圆即为圆draw.ellipse((550, 50, 600, 100), 'seagreen', 'skyblue') #绘制多边形draw.polygon((150, 180, 200, 180, 250, 120, 230, 90, 130, 100), 'olive', 'hotpink')#绘制文本font = ImageFont.truetype("consola.ttf", 40, encoding="unic")#设置字体draw.text((100, 50), u'Hello World', 'fuchsia', font)image.show()return

首先,通过ImageDraw类创建一个绘制对象draw;

draw.line():直线的绘制,第一个参数指定的是直线的端点坐标,形式为(x0, y0, x1, y1),第二个参数指定直线的颜色;

draw.rectangle():矩形绘制,第一个参数指定矩形的对角线顶点(左上和右下),形式为(x0, y0, x1, y1),第二个指定填充颜色,第三个参数指定边界颜色;

draw.arc():(椭)圆弧的绘制,第一个参数指定弧所在椭圆的外切矩形,第二、三两个参数分别是弧的起始和终止角度, 第四个参数是填充颜色,第五个参数是线条颜色;

draw.chord():弦的绘制,和弧类似,只是将弧的起始和终止点通过直线连接起来;

draw.pieslice():圆饼图的绘制,和弧与弦类似,只是分别将起始和终止点与所在(椭)圆中心相连;

draw.ellipse():椭圆的绘制,第一个参数指定椭圆的外切矩形, 第二、三两个参数分别指定填充颜色和线条颜色,当外切矩形是正方形时,椭圆即为圆;

draw.polygon():绘制多边形,第一个参数为多边形的端点,形式为(x0, y0, x1, y1, x2, y2,……),第二、三两个参数分别指定填充颜色和线条颜色;

draw.text():文字的绘制,第一个参数指定绘制的起始点(文本的左上角所在位置),第二个参数指定文本内容,第三个参数指定文本的颜色,第四个参数指定字体(通过ImageFont类来定义)。

绘制结果如下:

最后,补充一下python中所支持的颜色,如下图所示:

另外,颜色也可以使用"#"加上6位16进制字符串表示如“#ff0000”,则和“red”等价,前两位表示R通道的值,中间两位表示G通道的值,最后两位表示B通道的值

2017.05.05

【python图像处理】几何图形的绘制与文字的绘制(ImageDraw类详解)相关推荐

  1. [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)...

    此文转载自:https://blog.csdn.net/Eastmount/article/details/111568397#commentBox 该系列文章是讲解Python OpenCV图像处理 ...

  2. python3d动态图-Python图像处理之gif动态图的解析与合成操作详解

    本文实例讲述了Python图像处理之gif动态图的解析与合成操作.分享给大家供大家参考,具体如下: gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图.这里,就介绍下如何使用python ...

  3. ImageDraw类详解:几何图形的绘制与文字的绘制

    python PIL图像处理模块中的ImageDraw类支持各种几何图形的绘制和文本的绘制,如直线.椭圆.弧.弦.多边形以及文字等. 下面直接通过示例来进行说明: #-*- coding: UTF-8 ...

  4. python绘制动态图-Python图像处理之gif动态图的解析与合成操作详解

    本文实例讲述了Python图像处理之gif动态图的解析与合成操作.分享给大家供大家参考,具体如下: gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图.这里,就介绍下如何使用python ...

  5. python动态图-Python图像处理之gif动态图的解析与合成操作详解

    本文实例讲述了Python图像处理之gif动态图的解析与合成操作.分享给大家供大家参考,具体如下: gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图.这里,就介绍下如何使用python ...

  6. [Python图像处理] 三十三.图像各种特效处理及原理万字详解(毛玻璃、浮雕、素描、怀旧、流年、滤镜等)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  7. python视觉识别字_Python怎么识别文字?正确 的方法详解

    爬虫--文字识别 机器视觉 从Google的无人驾驶汽车到可以识别假钞的自动售卖机,机器视觉一直都是一个应用广泛且具有深远的影响和雄伟的愿景的领域. 这里我们将重点介绍机器视觉的一个分支:文字识别.介 ...

  8. python中用于绘制各种图形、标注文本_python ImageDraw类实现几何图形的绘制与文字的绘制...

    python PIL图像处理模块中的ImageDraw类支持各种几何图形的绘制和文本的绘制,如直线.椭圆.弧.弦.多边形以及文字等. 下面直接通过示例来进行说明: #-*- coding: UTF-8 ...

  9. python画三维平面-Python 绘制酷炫的三维图步骤详解

    通常我们用 Python 绘制的都是二维平面图,但有时也需要绘制三维场景图,比如像下面这样的: 这些图怎么做出来呢?今天就来分享下如何一步步绘制出三维矢量(SVG)图. 八面体 我们先以下面这个八面体 ...

最新文章

  1. 对话BAT数据分析专家:数据分析比你想象的更强大
  2. 把button伪装成超链接
  3. 非常好的monkey总结资料
  4. 信息系统项目管理师培训感言
  5. 从fig文件中读取数据
  6. 一位程序员的奋斗历程!------转载
  7. Linux多线程同步——信号量
  8. 动态规划之——又见拦截导弹(nyoj814)
  9. java.lang.UnsupportedClassVersionError: Bad version number in .class file 解决方法
  10. Android 自定义软键盘实现
  11. java 数据验证_Java 数据验证
  12. e-mobile帐号状态存在异常_企业微信添加好友提示”操作异常”怎么办?
  13. 网络与综合布线及无线传输
  14. xslx-style导出,表头样式表格样式,指定条件
  15. python怎么用sin_Python math.sin() 方法
  16. 自从我使用HiFlow场景连接器后,在也不用担心成为“落汤鸡”了
  17. 程序员必须要做的颈椎操
  18. 【2019年04月30日】股息率分红最高排名
  19. MSDB数据库置疑状态的解决方法
  20. 简易记账开发笔记之Fragment(前传)

热门文章

  1. 同时存多个变量缓存 微信小程序_微信小程序 缓存(本地缓存、异步缓存、同步缓存)详解...
  2. Oracle-多表连接的三种方式解读
  3. Linux内核链表之共享双链表
  4. java拆解_深入拆解Java虚拟机视频教程
  5. 复习笔记(七)——C++友元
  6. linux 服务器 iptables 防止arp病毒,让Linux系统有效防御ARP攻击的实用技巧
  7. pythonjson数据解析错误是什么意思_Python中的JSON解析错误
  8. pytest第二版 进阶学习
  9. gin 项目结构_Gin框架 - 项目目录
  10. 2层框架结构柱子间距_2分钟掌握五种不同类型的厂房结构,找厂房少绕弯!