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深入学习之闭包
Aug 31 Python
python BeautifulSoup设置页面编码的方法
Apr 03 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
Apr 28 Python
Python实现字典的key和values的交换
Aug 04 Python
使用Python对Csv文件操作实例代码
May 12 Python
python3之模块psutil系统性能信息使用
May 30 Python
python实现扫描局域网指定网段ip的方法
Apr 16 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
Jul 03 Python
Python 批量刷博客园访问量脚本过程解析
Aug 30 Python
Python实例方法、类方法、静态方法区别详解
Sep 05 Python
Selenium浏览器自动化如何上传文件
Apr 06 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
PHP4实际应用经验篇(6)
2006/10/09 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
php的webservice的wsdl的XML无法显示问题的解决方法
2014/03/11 PHP
Codeigniter中mkdir创建目录遇到权限问题和解决方法
2014/07/25 PHP
php针对cookie操作的队列操作类实例
2014/12/10 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
JavaScript null和undefined区别分析
2009/10/14 Javascript
基于jQuery的简单九宫格实现代码
2012/08/09 Javascript
Extjs407 getValue()和getRawValue()区别介绍
2013/05/21 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
js输出阴历、阳历、年份、月份、周示例代码
2014/01/29 Javascript
jquery中each遍历对象和数组示例
2014/08/05 Javascript
PhotoShop给图片自动添加边框及EXIF信息的JS脚本
2015/02/15 Javascript
JavaScript的Backbone.js框架的一些使用建议整理
2016/02/14 Javascript
JS字符串的切分用法实例
2016/02/22 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
js实现简单的获取验证码按钮效果
2017/03/03 Javascript
JS操作时间 - UNIX时间戳的简单介绍(必看篇)
2017/08/16 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
jQuery实现带3D切割效果的轮播图功能示例【附源码下载】
2019/04/04 jQuery
vue移动端实现手机左右滑动入场动画
2020/06/17 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
Python利用turtle库绘制彩虹代码示例
2017/12/20 Python
python提取图像的名字*.jpg到txt文本的方法
2018/05/10 Python
Python中 CSV格式清洗与转换的实例代码
2019/08/29 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
Python之多进程与多线程的使用
2021/02/23 Python
详解CSS3中border-image的使用
2015/07/18 HTML / CSS
如何用Python来进行查询和替换一个文本字符串
2014/01/02 面试题
如何撰写一封出色的求职信
2014/04/27 职场文书
十八大演讲稿
2014/05/22 职场文书
2015教师年度工作总结范文
2015/04/07 职场文书
工作证明书
2015/06/15 职场文书
丧事酒宴答谢词
2015/09/30 职场文书