python批量添加姓名生成奖状批量处理图片教师学生奖状
预期成果:在空白奖状模板中添加学生姓名并保持,批量保持不同姓名的学生奖状。学生姓名保存在txt文件中。
STEP1 准备工作
- 安装图片处理的PIL模块
命令提示符下easy_install pillow
- 空白奖状图片,文件名为:jiangzhuang.jpg
- 获奖名单保存在txt,一个学生一行,文件名为:name.txt
STEP2 一张照片的添加姓名和另存为
from PIL import Image,ImageDraw,ImageFont
old_img = Image.open(r"jiangzhuang.jpg")
draw = ImageDraw.Draw(old_img)
# 设置图片文字,字体类型,以及字体大小,颜色
newfont=ImageFont.truetype('simkai.ttf',60)
draw.text((170,355),"小明",font=newfont,fill="blue")
#old_img.show() #运行显示
old_img.save('d:/jiangzhuang1.jpg')
STEP3 设置批量
发现读取txt文档的这部分代码可以直接用,自带循环,直接套用就可以。
一个问题就是输出的文件不能放到指定文件夹里,倒是影响不大。
from PIL import Image,ImageDraw,ImageFontwith open("name.txt", "r") as f:for line in f.readlines():line = line.strip('\n') #去掉列表中每一个元素的换行符#print(line)old_img = Image.open(r"jiangzhuang.jpg")draw = ImageDraw.Draw(old_img)# 设置图片文字,字体类型,以及字体大小,颜色newfont = ImageFont.truetype('simkai.ttf', 60)draw.text((170, 355), line, font=newfont, fill="blue")#old_img.show() #运行显示save_adress = str(line) + '.jpg'old_img.save(save_adress)print(line + "DONE")
输出为:
STEP4 设置自定义字体大小和位置,为封装为exe文件做准备。
from PIL import Image,ImageDraw,ImageFontzi = int(input("请输入字体大小(推荐60):"))
x = int(input("请输入字体大小和姓名坐标(推荐170):"))
y = int(input("请输入字体大小和姓名坐标(推荐355):"))with open("name.txt", "r") as f:for line in f.readlines():line = line.strip('\n') #去掉列表中每一个元素的换行符#print(line)old_img = Image.open(r"jiangzhuang.jpg")draw = ImageDraw.Draw(old_img)# 设置图片文字,字体类型,以及字体大小,颜色newfont = ImageFont.truetype('simkai.ttf', zi)draw.text((x, y), line, font=newfont, fill="blue")#old_img.show() #运行显示save_adress = str(line) + '.jpg'old_img.save(save_adress)print(line + "DONE")
old_img.show() #运行显示
STEP5 设置循环方便在exe中修改参数
from PIL import Image,ImageDraw,ImageFonttep = 0
while tep == 0 :zi = int(input("请输入姓名字体大小(推荐60):"))color = input("请输入姓名字体颜色(推荐black、blue、red):")x = int(input("请输入字体大小和姓名坐标(推荐170):"))y = int(input("请输入字体大小和姓名坐标(推荐355):"))old_img = Image.open(r"jiangzhuang.jpg")draw = ImageDraw.Draw(old_img)# 设置图片文字,字体类型,以及字体大小,颜色newfont=ImageFont.truetype('simkai.ttf',zi)draw.text((x,y),"测试名",font=newfont,fill=color)print("请预览,预览后请关闭图片窗口。")old_img.show() # 运行显示tep = int(input("确认批量生成奖状请按1,重新调整参数请按0 : "))with open("name.txt", "r") as f:for line in f.readlines():line = line.strip('\n') #去掉列表中每一个元素的换行符#print(line)old_img = Image.open(r"jiangzhuang.jpg")draw = ImageDraw.Draw(old_img)# 设置图片文字,字体类型,以及字体大小,颜色newfont = ImageFont.truetype('simkai.ttf', zi)draw.text((x, y), line, font=newfont, fill=color)#old_img.show() #运行显示save_adress = str(line) + '.jpg'old_img.save(save_adress)print(line + "DONE")
print("任务已完成,请打开文件夹查看。天天开心~~~~")
STEP6 封装为exe
具体做法参看
pygame设计一个刮刮乐加分小游戏小程序,教师加分奖,翻牌游戏
将奖状图片文件和txt文件复制到文件夹下。
运行效果如下:
自己又写了一个说明文件~
撒花完结
python批量添加姓名生成奖状批量处理图片教师学生奖状相关推荐
- Python图片相册批处理器的设计与实现批量添加图片水印、批量命名等功能
课题研究使用Python语言开发一个包含批量添加图片水印.批量命名等功能的图片批处理程序,功能模块大概包含以下模块: (1)首页模块:首页是整个软件的初始页面,包含用户登录.注册.关于本软件等功能,用 ...
- android批量添加联系人,Android实现批量添加联系人到通讯录
由于工作上的需要,把数据库中备份的联系人添加到Android通讯录,一般都有几百条记录,插入一条数据系统默认commit一次,这样效率 由于工作上的需要,把数据库中备份的联系人添加到Android通讯 ...
- ewomail开源版邮箱服务器 批量添加邮箱实现邮箱批量接收验证码
前言 最近折腾了一段时间的邮件服务器,常见的邮件服务器系统例如,muila,iredmail,roundcube,ewomail,hMindmail等等,重复安装了好几次,最后发现还是ewoamil搭 ...
- python批量添加文件夹_python批量新建文件夹
0.背景 因为要经常写课备课,年级较多(G5-G11),每个年级的课程也比较多(1-100),每次都要新建文件夹,觉的比较麻烦,于是想着去写一个简单小程序去批量自动创建文件夹. 我的思路是这样的: 1 ...
- mybatis的oracle批量添加,Mybatis实现Oracle批量插入
之前用的SqlSessionDaoSupport,但是网上搜了下,发现getSqlSession()不能设置ExecutorType,所以又自己重写了一个类,为SqlSession设置了Executo ...
- 批量添加用户 php,hmailserver批量添加用户
将内容复制到txt文件中后缀改为vbs 将用户名密码替换为自己的 脚本内容如下: Option Explicit On Error resume next Dim obBaseApp Dim objF ...
- 【Python实例分析】批量生成海报--自动添加姓名和二维码
最近参加了老男孩的一个python训练营,里面某项任务是要求在某个海报模板上批量添加姓名和二维码,生成类似下图的海报. 图中我用红色方框标记的是需要修改的地方,先来聊下自己的思路: 1.要进行图片操作 ...
- 关于批量添加用户和域用户
首先看批量添加用户,有三种方法: 1.开始-运行-CMD 输入 for /l %i in (1,1,50) do net user test%i 123456 /add 注:(1,1, ...
- 获取族_批量添加族参数(上)
随着BIM技术在工程行业的普及,不少设备供应商也因此被拉下了水,一些项目的BIM实施细则就要求设备进场之前就必须提供设备的LOD400-500精度的BIM模型.BIM的精髓在于信息,做的再精细而没有信 ...
最新文章
- GitNote基于git的个人云笔记
- T1187 强制 NTLM 认证
- java 输出 三角形_Java实现输出三角形
- ASP.NET设置焦点到输入框
- 区块链80%项目靠同一个故事拿钱,但标准链说最坏的时机就是好的开始
- ajax链接php,关于php:在ajax切换后,单击链接没有任何作用?
- Windows上卸载SqlServer数据库
- 【Xamarin 挖墙脚系列:Xamarin SDK开源了................】
- 这样设置路由,99.9%的黑客都攻不破
- Android下图片处理的的一些方法
- csvreader_OpenCSV CSVReader CSVWriter示例
- javascript中for循环里面套定时器,始终打印结束值原因
- 关于button onclick a href 分析
- Spring之切入点表达式
- android定位!每个程序员都必须掌握的8种数据结构!完整版开放下载
- 设计网页字体css,css教程:网页字体及字体大小的设计
- 法人银行贷款逾期信息查询
- 天才学生的天才回答 让老师无话可说的语文答卷
- linux 日历,计算器,nano编辑器,开关机、重启,
- C++ 科学计数法和精度问题
热门文章
- 迁移学习在医学影像学中的应用
- aur打包linux微信,ArchLinux微信、TIM安装与乱码解决方法
- 设计模式初探(五)——二三模式一锅煮
- java 设置excel颜色_Java 为 Excel 中的行设置交替背景色
- 植物大战僵尸源代码java面向对象,植物大战僵尸:实现游戏内自动收集阳光
- win10,win11 下部署Vicuna-7B,Vicuna-13B模型,gpu cpu运行
- 并发——锁升级(偏向锁,轻量级锁,重量级锁,及常见锁)
- 全球与中国液压离合器市场现状及未来发展趋势(2022)
- 记录下:订单模块初步完成
- 【数学】高昆轮高数下强化