利用Python几行代码批量生成验证码
几行代码批量生成authCode
整体步骤:
1.创建图片
2.创建画笔
3.在图片上生成点
4.在图片上画线
5.在图片在画圆
6.在图片在写文本
7.在图片在生成指定字体的文本
代码奉上
#!/usr/bin/env python
# author:Torre Yang
# datetime:2018/9/9 10:18
# 改进:1.自适应调整验证码的数量;2.随机输出字符
import random
import logging
logging.basicConfig(level=logging.INFO)
# 导入Image,ImageDraw,ImageFont模块
from PIL import Image, ImageDraw, ImageFont # strNum 为想要生成的字符数; num为生成的数量
def authCodeMaker(strNum, num):
while(num):
# 定义使用Image类实例化一个长为30 * (strNum - 1),宽为30px,基于RGB的(255,255,255)颜色的图片; 通过控制图片长度来限制字符数量
img1 = Image.new(mode="RGB", size=(30 * (strNum - 1), 30), color=(255, 255, 255))
# 实例化一支画笔
draw1 = ImageDraw.Draw(img1, mode="RGB")
# 定义要使用的字体 ,字体放置程序统计目录目录
font1 = ImageFont.truetype("ALGER.TTF", 28)
# 生成四个字符的验证码, 保存字符串生产文件名
strList = []
for i in range(strNum):
# 每循环一次,从a到z中随机生成一个字母或数字
# 65到90为字母的ASCII码,使用chr把生成的ASCII码转换成字符
# str把生成的数字转换成字符串; 可以将0过滤掉; 由于0和字母O相差不大
allstr = [chr(random.randint(97, 122)), chr(random.randint(65, 90)), str(random.randint(1, 9))]
allstr = ''.join(allstr)
char1 = random.choice(allstr)
strList.append(char1)
# 每循环一次重新生成随机颜色
color1 = (random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))
# 把生成的字母或数字添加到图片上
# 图片长度为30 * (strNum - 1),要生成num个数字或字母则每添加一个,其位置就要向后移动24px
draw1.text([i * 24, 0], char1, color1, font=font1)
# 把生成的图片保存为"strList.png"格式; TIPS:创建你需要保存文件的位置
with open('E:\PyCharmProjects\APP-UI\\authCode\\'+''.join(strList)+".png", "wb") as f:
img1.save(f, format="png")
num = num - 1
logging.info('剩余%d张待生成: '%num +''.join(strList)+'.png') # 测试
if __name__=='__main__':
authCodeMaker(4, 1000)
附件:代码地址 https://github.com/Testworm/app_ui/blob/master/authCode.py
实例:

利用Python几行代码批量生成验证码的更多相关文章
- 比PS还好用!Python 20行代码批量抠图
你是否曾经想将某张照片中的人物抠出来,然后拼接到其他图片上去,从而可以即使你在天涯海角,我也可以到此一游? 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在 ...
- Python 5 行代码的神奇操作
Python 语言实现功能直接了当,简明扼要,今天咱们就来一起看看 Python 5 行代码的神奇操作! 1.古典兔子问题 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语 ...
- Python 写了一个批量生成文件夹和批量重命名的工具
Python 写了一个批量生成文件夹和批量重命名的工具 目录 Python 写了一个批量生成文件夹和批量重命名的工具 演示 功能 1. 可以读取excel内容,使用excel单元格内容进行新建文件夹, ...
- Python第一行代码
Python版本:Python 3.6.1 0x01 命令行交互 在交互式环境的提示符>>>下,直接输入代码,按回车,就可以立刻得到代码执行结果.现在,试试输入100+200,看看计 ...
- python的random模块(生成验证码)
python的random模块(生成验证码) random模块常用方法 random.random() #生成0到1之间的随机数,没有参数,float类型 random.randint(1, 3) # ...
- Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果
Python 1行代码实现文本分类(实战笔记),含代码详细说明及运行结果 一.详细说明及代码 tc.py =============================================== ...
- Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed
最近在用Python开发自己的博客,需要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,因为我用的是windows. 所以在安装好pil之后就开始写,就按照题目所说出现了Th ...
- Python 3 行代码 5 秒抠图的 AI 神器,根本无需 PS
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者: 苏克1900 PS:如有需要Python学习资料的小伙伴可以加点击下 ...
- Python&R&Matlab:批量生成变量
在编写程序时,有时我们需要命名相当多的变量,比如x0.x1.x2.....xn,用手一个个打出来是相当麻烦的.那么这时我们就需要批量生成变量了. 解决这个问题的关键在于,'xn'是自动构造出来的字符串 ...
随机推荐
- 数据库学习笔记day04
--row_number()over(partition by xxx order by xxx)分组排序函数 特点:组内连续且唯一select ename,sal,deptno,row_number ...
- centos7设置静态ip-修改配置文件方式
修改IP地址为静态地址需要修改配置文件,首先打开配置文件,在控制台输入cd /etc/sysconfig/network-scripts 输入ifconfig,这样就可以看到你的ip地址等信息了. v ...
- windows10 安装win10和ubuntu 16.04双系统
安装教程如下 亲测可用 https://www.cnblogs.com/masbay/p/10844857.html 镜像路径如下 http://releases.ubuntu.com/16.04/ ...
- 【朝花夕拾】Android性能篇之(八)来自官网的自白
前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10823372.html],谢谢! Android性能优化无疑是Android中的一个重点,也是 ...
- (四十六)c#Winform自定义控件-水波进度条-HZHControls
官网 http://www.hzhcontrols.com 前提 入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章. GitHub:https://github.com/kww ...
- git push 时用户的配置
Pycharm临时配置git提交的账户:git 修改当前的project的用户名的命令为:git config user.name 你的目标用户名**;git 修改当前的project提交邮箱的命令为 ...
- 24.Firewalld防火墙
1.Firewalld防火墙的概述 RHEL/CentOS 7系统中集成了多款防火墙管理工具,其中firewalld是默认的防火墙配置管理工具它拥有基于CLI(命令行界面)和基于GUI(图形用户界面) ...
- 松软科技带你学前端:JavaScript 使用
<script> 标签 在 HTML 中,JavaScript 代码必须位于 <script> 与 </script> 标签之间. 实例 <script> ...
- 松软科技web课堂:SQLServer之HAVING 子句
HAVING 子句 在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与合计函数一起使用. SQL HAVING 语法 SELECT column_name, aggregate_f ...
- 使用Graphviz和Pyreverse绘制Python项目结构图
使用Graphviz和Pyreverse绘制Python项目结构图 简介 Graphviz开源的图形绘制工具包 Pyreverse分析Python代码和类关系的工具 安装 安装Graphviz 官网下 ...