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 GAE、Django导出Excel的方法
Nov 24 Python
python self,cls,decorator的理解
Jul 13 Python
Python实现全角半角字符互转的方法
Nov 28 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
Python Django Vue 项目创建过程详解
Jul 29 Python
Python Django 命名空间模式的实现
Aug 09 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
python 协程中的迭代器,生成器原理及应用实例详解
Oct 28 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
python opencv进行图像拼接
Mar 27 Python
Python利器openpyxl之操作excel表格
Apr 17 Python
Python多线程 Queue 模块常见用法
Jul 04 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远程连接MYSQL数据库非常慢的解决方法
2008/07/05 PHP
php 显示指定路径下的图片
2009/10/29 PHP
关于初学PHP时的知识积累总结
2013/06/07 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
php字符串函数 str类常见用法示例
2020/05/15 PHP
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
JS实现网页滚动条感应鼠标变色的方法
2015/02/26 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
2016/05/25 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
JS得到当前时间的方法示例
2017/03/24 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
JavaScript实现的拼图算法分析
2019/02/13 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
js中!和!!的区别与用法
2020/05/09 Javascript
Python笔记(叁)继续学习
2012/10/24 Python
Python入门_条件控制(详解)
2017/05/16 Python
python中列表和元组的区别
2017/12/18 Python
Python实现对一个函数应用多个装饰器的方法示例
2018/02/09 Python
Django 视图层(view)的使用
2018/11/09 Python
python mysql断开重连的实现方法
2019/07/26 Python
基于Keras中Conv1D和Conv2D的区别说明
2020/06/19 Python
Python 利用flask搭建一个共享服务器的步骤
2020/12/05 Python
中国领先的专业家电网购平台:国美在线
2016/12/25 全球购物
大学生的四年学习自我评价
2013/12/13 职场文书
高一生物教学反思
2014/01/17 职场文书
三八妇女节活动主持词
2014/03/17 职场文书
技术入股合作协议书
2014/10/07 职场文书
主持人大赛开场白
2015/05/29 职场文书
热爱劳动主题班会
2015/08/14 职场文书
python识别围棋定位棋盘位置
2021/07/26 Python
【DOTA2】总决赛血虐~ XTREME GAMING vs MAGMA - OGA DOTA PIT 2022 CN
2022/04/02 DOTA
win11高清晰音频管理器在哪里?win11找不到高清晰音频管理器解决办法
2022/04/08 数码科技