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快速查找算法应用实例
Sep 26 Python
python实现TCP服务器端与客户端的方法详解
Apr 30 Python
Django实现快速分页的方法实例
Oct 22 Python
Python tkinter label 更新方法
Oct 11 Python
在Pycharm terminal中字体大小设置的方法
Jan 16 Python
树莓派动作捕捉抓拍存储图像脚本
Jun 22 Python
python3 enum模块的应用实例详解
Aug 12 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
python manage.py runserver流程解析
Nov 08 Python
python 使用opencv 把视频分割成图片示例
Dec 12 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
Python3利用openpyxl读写Excel文件的方法实例
Feb 03 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
php三元运算符知识汇总
2015/07/02 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
PHP bin2hex()函数基础实例讲解
2019/02/11 PHP
调试php程序的简单步骤
2019/10/04 PHP
laravel 获取当前url的别名方法
2019/10/11 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
图片自动更新(说明)
2006/10/02 Javascript
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
javascript开发技术大全-第1章javascript概述
2011/07/03 Javascript
setInterval,setTimeout与jquery混用的问题
2013/04/08 Javascript
javascript生成随机颜色示例代码
2014/05/05 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
BootStrap 模态框实现刷新网页并关闭功能
2017/01/04 Javascript
JS实现加载时锁定HTML页面元素的方法
2017/06/24 Javascript
Vue2.0用 watch 观察 prop 变化(不触发)
2017/09/08 Javascript
使用koa-log4管理nodeJs日志笔记的使用方法
2018/11/30 NodeJs
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
python实现多线程采集的2个代码例子
2014/07/07 Python
pygame学习笔记(4):声音控制
2015/04/15 Python
Python查询IP地址归属完整代码
2017/06/21 Python
关于Python数据结构中字典的心得
2017/12/04 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
Python分割训练集和测试集的方法示例
2019/09/19 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
django之从html页面表单获取输入的数据实例
2020/03/16 Python
Python判断字符串是否为空和null方法实例
2020/04/26 Python
在python中list作函数形参,防止被实参修改的实现方法
2020/06/05 Python
python两个list[]相加的实现方法
2020/09/23 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
HTML5 drag和drop具体使用详解
2021/01/18 HTML / CSS
党员承诺书内容
2014/03/26 职场文书
2014年保卫部工作总结
2014/11/21 职场文书
新闻稿件写作技巧
2015/07/18 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
SpringBoot整合Minio文件存储
2022/04/03 Java/Android