python 实现PIL模块在图片画线写字


Posted in Python onMay 16, 2020

图片上画线条

import sys
from PIL import Image,ImageDraw

im = Image.open("th.png")
draw = ImageDraw.Draw(im) #实例化一个对象
draw.line((0, 0) + im.size, fill=128, width=5) #线的起点和终点,线宽
draw.line((0, im.size[1], im.size[0], 0), fill=128)
draw.line((0,im.size[1]/2)+(im.size[0]/2,im.size[1]), fill=128, width=5)
im.show()

图片上写字

from PIL import Image, ImageDraw, ImageFont

# get an image
base = Image.open('th.jpg').convert('RGBA')
# make a blank image for the text, initialized to transparent text color
txt = Image.new('RGBA', base.size, (255,255,255,0))
# get a font 需要在C:\Windows\Fonts拷贝一份字体文件 当前脚本路径下
fnt = ImageFont.truetype('cambriai.ttf', 40)
# get a drawing context
d = ImageDraw.Draw(txt)
# draw text, half opacity
d.text((10,10), "Hello", font=fnt, fill=(255,255,255,128))
# draw text, full opacity
d.text((10,60), "World", font=fnt, fill=(255,255,255,255))
fillcolor = "#ff0000"  #字体颜色
d.text((base.size[0]-20,10), "4", font=fnt, fill=fillcolor)
out = Image.alpha_composite(base, txt)
out.show()

参考官方文档 https://pillow.readthedocs.io/en/stable/reference/Image.html

补充知识:python对图像中的人脸进行画框(人脸的位置数据记录在记事本文件中)

我就废话不多说了,大家还是直接看代码吧!

import numpy as py
import os
import cv2 as cv
with open('labelFaceData.txt','r')as fp:#打开记录了数据的记事本文件
  pictureNumber = 0#用来记录照片的数量
  while 1:
    count = 1
    line = fp.readline()#读取文件中每一行的数据
    if not line:#如果读取失败则退出
      break
    pictureNumber+=1#图片数加1
    str1 = line.split()#用一个数组以字符串的形式储存文件中的数据
    img = cv.inread(str[0])#str[0]中存放的是要读取的图片地址,用cv.inread读取它
    faceNumber = (len(str1)-1)/16#用来记录人脸的总数
    for i in reage(faceNumber):#用for循环对人脸进行画框
      x = int(str1[count+1])#x,y,w,h为画框需要的点
      y = int(str1[count+2])
      w = int(str1[count+3])
      h = int(str1[count+4])
      cv.rectangle(img,(x,y),(x+w,y+h),(255,0,0),3,4,0)#用rectangle对图像进行画框
      count+=16
    #cv.namedWindow(str[0],0)
    #cv.imshow(str[0],img);
    #cv.waitKey(0)
    cv.imwrite("./result/image1_"+str(pictureNumber)+".jpg",img)#保存图片
fp.close()

以上这篇python 实现PIL模块在图片画线写字就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python操作xml文件示例
Apr 07 Python
Python实现基于权重的随机数2种方法
Apr 28 Python
python数据结构之图深度优先和广度优先实例详解
Jul 08 Python
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
python中scikit-learn机器代码实例
Aug 05 Python
浅谈django三种缓存模式的使用及注意点
Sep 30 Python
Python3对称加密算法AES、DES3实例详解
Dec 06 Python
Python获取航线信息并且制作成图的讲解
Jan 03 Python
python之生产者消费者模型实现详解
Jul 27 Python
python图像处理模块Pillow的学习详解
Oct 09 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
Java byte数组操纵方式代码实例解析
Jul 22 Python
在python image 中实现安装中文字体
May 16 #Python
Python 判断时间是否在时间区间内的实例
May 16 #Python
解决Python Matplotlib绘图数据点位置错乱问题
May 16 #Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 #Python
解决echarts中饼图标签重叠的问题
May 16 #Python
实现ECharts双Y轴左右刻度线一致的例子
May 16 #Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 #Python
You might like
PHP中GET变量的使用
2006/10/09 PHP
PHP中的session永不过期的解决思路及实现方法分享
2011/04/20 PHP
PHP中的类型约束介绍
2015/05/11 PHP
PHP简单实现断点续传下载的方法
2015/09/25 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
PHP内部实现打乱字符串顺序函数str_shuffle的方法
2019/02/14 PHP
php+js实现的无刷新下载文件功能示例
2019/08/23 PHP
Laravel框架Eloquent ORM修改数据操作示例
2019/12/03 PHP
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
jquery 面包屑导航 具体实现
2013/06/05 Javascript
jquery对dom的操作常用方法整理
2013/06/25 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
sliderToggle在写jquery的计时器setTimeouter中不生效
2014/05/26 Javascript
JS实现在页面随时自定义背景颜色的方法
2015/02/27 Javascript
js实现带圆角的多级下拉菜单效果
2015/08/28 Javascript
jQuery validate+artdialog+jquery form实现弹出表单思路详解
2016/04/18 Javascript
jQuery实现点击行选中或取消CheckBox的方法
2016/08/01 Javascript
微信小程序页面跳转功能之从列表的item项跳转到下一个页面的方法
2017/11/27 Javascript
mock.js实现模拟生成假数据功能示例
2019/01/15 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
Vue 2.0双向绑定原理的实现方法
2019/10/23 Javascript
vue实现拖拽进度条
2021/03/01 Vue.js
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
python中assert用法实例分析
2015/04/30 Python
python队列通信:rabbitMQ的使用(实例讲解)
2017/12/22 Python
Python实现自动上京东抢手机
2018/02/06 Python
Python3利用Dlib实现摄像头实时人脸检测和平铺显示示例
2019/02/21 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
JAVA语言如何进行异常处理,关键字:throws,throw,try,catch,finally分别代表什么意义?在try块中可以抛出异常吗?
2013/07/02 面试题
运动会领导邀请函
2014/02/05 职场文书
2015年安全生产管理工作总结
2015/05/25 职场文书
思想工作总结范文
2015/08/12 职场文书
Java中使用Filter过滤器的方法
2021/06/28 Java/Android