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类来定义)。

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

ImageDraw类详解:几何图形的绘制与文字的绘制相关推荐

  1. 【python图像处理】几何图形的绘制与文字的绘制(ImageDraw类详解)

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

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

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

  3. Android复习14【高级编程:推荐网址、抠图片上的某一角下来、Bitmap引起的OOM问题、三个绘图工具类详解、画线条、Canvas API详解(平移、旋转、缩放、倾斜)、矩阵详解】

    目   录 推荐网址 抠图片上的某一角下来 8.2.2 Bitmap引起的OOM问题 8.3.1 三个绘图工具类详解 画线条 8.3.16 Canvas API详解(Part 1) 1.transla ...

  4. Android基础入门教程——8.3.1 三个绘图工具类详解

    Android基础入门教程--8.3.1 三个绘图工具类详解 标签(空格分隔): Android基础入门教程 本节引言: 上两小节我们学习了Drawable以及Bitmap,都是加载好图片的,而本节我 ...

  5. 【matplotlib】可视化之路——Rectangle类详解

    概述 Rectangle 类官方文档,以下是 maplotlib 库中的继承图: 由图可知 Rectangle 类继承自 Patch 类,关于 Patch 类,详情见 [matplotlib]可视化之 ...

  6. 时间序列预测任务PyTorch数据集类——TimeSeriesDataSet 类详解

    时间序列预测任务PyTorch数据集类--TimeSeriesDataSet 类详解 当进行时间序列预测或时间序列分析时,通常需要对数据进行预处理和转换以提高模型的效果和准确性.TimeSeriesD ...

  7. PR详解及二分类的PR曲线绘制

    PR详解及二分类的PR曲线绘制 从混淆矩阵可见: 要提高Precesion,只要让预测为正样本的阈值尽可能高(最高为1,即只有当100%认为是正样本时才会被预测为正),即只有极大概率为正才会被预测为正 ...

  8. OpenCV Mat类详解和用法(官网原文)

    参考文章:OpenCV Mat类详解和用法 我马克一下,日后更 官网原文链接:https://docs.opencv.org/3.2.0/d6/d6d/tutorial_mat_the_basic_i ...

  9. 转载:c+string类详解

    C++ string 类详解 </h1><div class="clear"></div><div class="postBod ...

最新文章

  1. at24c16如何划分出多个读写区_51单片机向at24c16EPROM写入一个数据每问题,写入多个数据,读出的数据都一样...
  2. VMware vSphere 7 服务器ESXi虚拟化HA高可用解决方案
  3. junit 案例(三)
  4. Qt Creator配置编辑器
  5. CIKM 2021 | BH:面向Web级应用的基于二进制码的Hash Embedding
  6. 用python绘制图形_使用Python的turtle画炫酷图形
  7. Spring Data JPA教程第一部分:配置
  8. linux查询设备文件信息失败怎么办,Linux下使用blkid命令查询设备及文件系统信息的方法...
  9. 如何绘制逻辑图 — 3.要素的属性:粒度与分层
  10. session和cookie的最深刻理解
  11. oracle 表字段顺序_Oracle数据库如何修改表中字段顺序
  12. mfc编程vc6.0实现进程的创建和通信_免费送书:windows黑客编程技术详解
  13. 什么是对象存储OSS-对象存储 OSS > 产品简介 > 什么是对象存储OSS
  14. java语句while主意点
  15. 牛客(3)从尾到头打印链表
  16. ps 缩放 颜色分类 像素和分辨率学习笔记
  17. linux监控程序-程序自动重启方法(转)
  18. [Linux] 10. shell编程基础《updating》
  19. 新手零基础:飞桨代码中关于图片路径读取和资源解压报错
  20. 推荐5款轻量级的小软件,界面简洁无广告

热门文章

  1. OA系统中如何实现合同管理?
  2. Unity 中的4X4矩阵
  3. word 编辑过程中变为只读_word文档保存后,如何恢复之前的资料?
  4. 操作系统到底哪个好?windows好!
  5. PUN2多人联网之房间选择、创建房间
  6. MLY -- 10.Having a dev set and metric speeds up iterations
  7. word2vec理解及pytorch实现
  8. 加班申请 ----中间表--系统自动算出---可调休天数
  9. S32K144调试记录(二)
  10. 计嵌 廖峻 20178303040 C++作业