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 12 Python
linux环境中没有网络怎么下载python
Jul 07 Python
pandas通过字典生成dataframe的方法步骤
Jul 23 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
python给指定csv表格中的联系人群发邮件(带附件的邮件)
Dec 31 Python
python中的 zip函数详解及用法举例
Feb 16 Python
pyecharts调整图例与各板块的位置间距实例
May 16 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
使用anaconda安装pytorch的实现步骤
Sep 03 Python
python关于集合的知识案例详解
May 30 Python
python批量创建变量并赋值操作
Jun 03 Python
python使用torch随机初始化参数
Mar 22 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开发大型项目的一点经验
2006/10/09 PHP
PHP7实现和CryptoJS的AES加密方式互通示例【AES-128-ECB加密】
2019/06/08 PHP
简单通用的JS滑动门代码
2008/12/19 Javascript
js 取时间差去掉周六周日实现代码
2012/12/25 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
2013/06/24 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
同一个网页中实现多个JavaScript特效的方法
2015/02/02 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
php简单数据库操作类的封装
2017/06/08 Javascript
jQuery封装animate.css的实例
2018/01/04 jQuery
layui--js控制switch的切换方法
2019/09/03 Javascript
使用原生JS实现滚轮翻页效果的示例代码
2020/05/31 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
Python使用pymysql小技巧
2017/06/04 Python
Anaconda多环境多版本python配置操作方法
2017/09/12 Python
python ansible服务及剧本编写
2017/12/29 Python
python flask中静态文件的管理方法
2018/03/20 Python
使用sklearn之LabelEncoder将Label标准化的方法
2018/07/11 Python
用pycharm开发django项目示例代码
2019/06/13 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
仿CSDN Blog返回页面顶部功能实现原理及代码
2013/06/30 HTML / CSS
次世代生活态度:Hypebeast
2018/07/05 全球购物
什么是serialVersionUID
2016/03/04 面试题
C语言笔试题回忆
2015/04/02 面试题
一套软件开发工程师笔试题
2015/05/18 面试题
2014爱耳日宣传教育活动总结
2014/03/09 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
教师自我剖析材料
2014/09/29 职场文书
财政局党的群众路线教育实践活动剖析材料
2014/10/13 职场文书
医学生自荐信范文(2016精选篇)
2016/01/28 职场文书
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
详解PyTorch模型保存与加载
2022/04/28 Python
A22国内电台短波广播频率表
2022/05/10 无线电