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判断值是否在list或set中的性能对比分析
Apr 16 Python
python爬虫_自动获取seebug的poc实例
Aug 05 Python
python中类和实例如何绑定属性与方法示例详解
Aug 18 Python
基于Python对象引用、可变性和垃圾回收详解
Aug 21 Python
Ubuntu16.04/树莓派Python3+opencv配置教程(分享)
Apr 02 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
对python的输出和输出格式详解
Dec 08 Python
python3获取当前目录的实现方法
Jul 29 Python
matplotlib命令与格式之tick坐标轴日期格式(设置日期主副刻度)
Aug 06 Python
python 实现批量图片识别并翻译
Nov 02 Python
python中用ctypes模拟点击的实例讲解
Nov 26 Python
Python 数据科学 Matplotlib图库详解
Jul 07 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手册及PHP编程标准
2006/12/17 PHP
PHP 修复未正常关闭的HTML标签实现代码(支持嵌套和就近闭合)
2012/06/07 PHP
php环境下利用session防止页面重复刷新的具体实现
2014/01/09 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
Web前端设计模式  制作漂亮的弹出层
2010/10/29 Javascript
jquery教程ajax请求json数据示例
2014/01/13 Javascript
jquery.form.js用法之清空form的方法
2014/03/07 Javascript
json属性名为什么要双引号(个人猜测)
2014/07/31 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
kindeditor修复会替换script内容的问题
2015/04/03 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
通过一个简单的例子学会vuex与模块化
2017/11/22 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
Python中编写ORM框架的入门指引
2015/04/29 Python
Python表示矩阵的方法分析
2017/05/26 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
python将类似json的数据存储到MySQL中的实例
2019/07/12 Python
解析python实现Lasso回归
2019/09/11 Python
Python爬虫爬取新闻资讯案例详解
2020/07/14 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
HTML5 LocalStorage 本地存储详细概括(多图)
2017/08/18 HTML / CSS
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
巴西购物网站:Submarino
2020/01/19 全球购物
上班睡觉检讨书
2014/01/09 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
go语言求任意类型切片的长度操作
2021/04/26 Golang