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类型强制转换long to int的代码
Feb 10 Python
python中使用pyhook实现键盘监控的例子
Jul 18 Python
python使用xlrd与xlwt对excel的读写和格式设定
Jan 21 Python
python+matplotlib实现鼠标移动三角形高亮及索引显示
Jan 15 Python
Python后台开发Django会话控制的实现
Apr 15 Python
python中的数据结构比较
May 13 Python
详解Python 调用C# dll库最简方法
Jun 20 Python
Django 开发环境与生产环境的区分详解
Jul 26 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
python实现的多任务版udp聊天器功能案例
Nov 13 Python
Pytorch 高效使用GPU的操作
Jun 27 Python
详解python polyscope库的安装和例程
Nov 13 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生成rss类用法实例
2015/04/14 PHP
PHP 开发者该知道的 5 个 Composer 小技巧
2016/02/03 PHP
javascript网页关闭时提醒效果脚本
2008/10/22 Javascript
javascript跨浏览器的属性判断方法
2014/03/16 Javascript
详解JavaScript的while循环的使用
2015/06/03 Javascript
jQuery根据用户电脑是mac还是pc加载对应样式的方法
2015/06/26 Javascript
解决jquery实现的radio重新选中的问题
2015/07/03 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
JS实现漂亮的淡蓝色滑动门效果代码
2015/09/23 Javascript
一种新的javascript对象创建方式Object.create()
2015/12/28 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
js 文字超出长度用省略号代替,鼠标悬停并以悬浮框显示实例
2016/12/06 Javascript
Vue绑定内联样式问题
2018/10/17 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
python 数据加密代码
2008/12/24 Python
Python解释执行原理分析
2014/08/22 Python
Python自动化部署工具Fabric的简单上手指南
2016/04/19 Python
Ubuntu下创建虚拟独立的Python环境全过程
2017/02/10 Python
Python创建字典的八种方式
2019/02/27 Python
详解python列表生成式和列表生成式器区别
2019/03/27 Python
在python中实现同行输入/接收多个数据的示例
2019/07/20 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
python绘制随机网络图形示例
2019/11/21 Python
python 装饰器的使用示例
2020/10/10 Python
python 实现倒计时功能(gui界面)
2020/11/11 Python
详解background属性的8个属性值(面试题)
2020/11/02 HTML / CSS
高中军训感言800字
2014/03/05 职场文书
中层干部竞聘演讲稿
2014/05/15 职场文书
电气工程师岗位职责
2015/02/12 职场文书
中国世界遗产导游词
2015/02/13 职场文书
博士生专家推荐信
2015/03/25 职场文书
幼儿园园长工作总结2015
2015/05/25 职场文书
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
SQLServer常见数学函数梳理总结
2022/08/05 MySQL