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展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
Python做简单的字符串匹配详解
Mar 21 Python
python创建列表和向列表添加元素的实现方法
Dec 25 Python
Python图像处理之简单画板实现方法示例
Aug 30 Python
python批量爬取下载抖音视频
Jun 17 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 Python
Python爬虫之urllib基础用法教程
Oct 12 Python
Pyorch之numpy与torch之间相互转换方式
Dec 31 Python
python:目标检测模型预测准确度计算方式(基于IoU)
Jan 18 Python
tensorflow 利用expand_dims和squeeze扩展和压缩tensor维度方式
Feb 07 Python
numpy矩阵数值太多不能全部显示的解决
May 14 Python
Python学习之os模块及用法
Jun 03 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 数组实例说明
2008/08/18 PHP
php站内搜索关键词变亮的实现方法
2014/12/30 PHP
php截取视频指定帧为图片
2016/05/16 PHP
PHP后端银联支付及退款实例代码
2017/06/23 PHP
JavaScript入门教程(10) 认识其他对象
2009/01/31 Javascript
innerText和innerHTML 一些问题分析
2009/05/18 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
JS和Jquery获取和修改label的值的示例代码
2014/01/15 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
基于Bootstrap的标签页组件及bootstrap-tab使用说明
2017/07/25 Javascript
Vue 实现展开折叠效果的示例代码
2018/08/27 Javascript
nodejs中函数的调用实例详解
2018/10/31 NodeJs
Jquery cookie插件实现原理代码解析
2020/08/04 jQuery
Vue触发input选取文件点击事件操作
2020/08/07 Javascript
vue中watch的用法汇总
2020/12/28 Vue.js
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
2019/08/12 Python
python 3.7.4 安装 opencv的教程
2019/10/10 Python
TensorFlow打印输出tensor的值
2020/04/19 Python
深入剖析HTML5 内联框架iFrame
2016/05/04 HTML / CSS
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
一些Solaris面试题
2015/12/22 面试题
春节请假条
2014/04/11 职场文书
业务员自荐信范文
2014/04/20 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
学生检讨书怎么写?
2014/10/10 职场文书
家庭困难证明
2014/10/12 职场文书
2015年行政工作总结范文
2015/04/09 职场文书
吧主申请感言怎么写
2015/08/03 职场文书
2016年小学教师师德承诺书
2016/03/25 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
SpringBoot整合Redis入门之缓存数据的方法
2021/11/17 Redis
分享CSS盒子模型隐藏的几种方式
2022/02/28 HTML / CSS