Python3 使用pillow库生成随机验证码


Posted in Python onAugust 26, 2019

Python3 使用pillow库生成随机验证码的代码如下所示:

import random
# pillow 包的使用
from PIL import Image,ImageDraw,ImageFont,ImageFilter
#Image  负责处理图片
#ImageDraw 负责处理画笔
#ImageFont 负责处理文字
#ImageFilter负责处理路径
img=Image.new('RGB',(150,50),(255,255,255)) #建立一个图片
'''
RGB:表示采用RGB方式新建的图片
第二个:表示图片的宽度和高度
第三个:表示具体图片的颜色
'''
#创建画笔
draw=ImageDraw.Draw(img)
#绘制线
for i in range(random.randint(1,10)):
 draw.line(
  [
   (random.randint(1,150),random.randint(1,50)),
   (random.randint(1,150),random.randint(1,50))
  ],
  fill=(0,0,0)
 )
#绘制点
for i in range(1000):
 draw.point(
  [
   random.randint(1,150),
   random.randint(1,150)
  ],
  fill=(0,0,0)
 )
fontlist=list('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')
c_char=' '.join(random.sample(fontlist,5))#在指定的列表中随机取出指定个数的元素
#绘制字体 需要先定制一下字体
font=ImageFont.truetype('simsun.ttc',30)
draw.text((5,5),c_char,font=font,fill='green')
'''
第一个:代表文字的位置,距离上和左的位置
第二个:代表文字的内容
第三个:代表字体,字形和大小
第四个:字体颜色
'''
#扭曲字体
# params=[1-float(random.randint(1,2))/100,
#   0,0,0,
#   1-float(random.randint(1,2))/100,
#   float(random.randint(1,2))/500,
#   0.001,
#   float(random.randint(1,1))/500,
# ]
# img=img.transform((150,50),Image.PERSPECTIVE,params)
# img=img.filter(ImageFilter.EDGE_ENHANCE_MORE)
# 展示图片
img.show()
# 将图片保存到本地
img.save('blur.jpg', 'jpeg')

总结

以上所述是小编给大家介绍的Python3 使用pillow库生成随机验证码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
为Python程序添加图形化界面的教程
Apr 29 Python
浅谈对yield的初步理解
May 29 Python
Python2.7基于笛卡尔积算法实现N个数组的排列组合运算示例
Nov 23 Python
python实现远程通过网络邮件控制计算机重启或关机
Feb 22 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
python requests 库请求带有文件参数的接口实例
Jan 03 Python
使用python itchat包爬取微信好友头像形成矩形头像集的方法
Feb 21 Python
python中的colorlog库使用详解
Jul 05 Python
matplotlib.pyplot.plot()参数使用详解
Jul 28 Python
python从PDF中提取数据的示例
Oct 30 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 Python
python excel转换csv代码实例
Aug 26 #Python
对YOLOv3模型调用时候的python接口详解
Aug 26 #Python
pandas条件组合筛选和按范围筛选的示例代码
Aug 26 #Python
python3 反射的四种基本方法解析
Aug 26 #Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 #Python
深入学习python多线程与GIL
Aug 26 #Python
用python生成与调用cntk模型代码演示方法
Aug 26 #Python
You might like
php扩展ZF――Validate扩展
2008/01/10 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
php 连接mysql连接被重置的解决方法
2011/02/15 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
php的curl封装类用法实例
2014/11/07 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
2017/02/15 PHP
使用vs code编辑调试php配置的方法
2019/01/29 PHP
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
JS随即打乱数组实现代码
2012/12/03 Javascript
利用NodeJS的子进程(child_process)调用系统命令的方法分享
2013/06/05 NodeJs
动态显示可输入的字数提示还可以输入的字数
2014/04/01 Javascript
javascript+html5实现仿flash滚动播放图片的方法
2015/04/27 Javascript
javascript实现淡蓝色的鼠标拖动选择框实例
2015/05/09 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
javascript中JSON.parse()与eval()解析json的区别
2016/05/19 Javascript
JavaScript实现倒计时跳转页面功能【实用】
2016/12/13 Javascript
关于微信jssdk实现多图片上传的一点心得分享
2016/12/13 Javascript
基于Bootstrap table组件实现多层表头的实例代码
2017/09/07 Javascript
详解React 在服务端渲染的实现
2017/11/16 Javascript
javaScript中"=="和"==="的区别详解
2018/03/16 Javascript
Bootstrap 时间日历插件bootstrap-datetimepicker配置与应用小结
2019/05/28 Javascript
VUE实现强制渲染,强制更新
2019/10/29 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
Node.js API详解之 os模块用法实例分析
2020/05/06 Javascript
python 中的列表解析和生成表达式
2011/03/10 Python
python实现异步回调机制代码分享
2014/01/10 Python
python对数组进行反转的方法
2015/05/20 Python
python实现微信防撤回神器
2019/04/29 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
大学四年规划书范文
2013/12/27 职场文书
摄影展策划方案
2014/06/02 职场文书
Python数据可视化之用Matplotlib绘制常用图形
2021/06/03 Python
升级 Win11 还是坚守 Win10?微软 Win11 新系统缺失功能大盘点
2022/04/05 数码科技
springcloud整合seata
2022/05/20 Java/Android