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面向对象特殊成员
Apr 24 Python
transform python环境快速配置方法
Sep 27 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
Python数据预处理之数据规范化(归一化)示例
Jan 08 Python
使用python搭建服务器并实现Android端与之通信的方法
Jun 28 Python
python 解决flask 图片在线浏览或者直接下载的问题
Jan 09 Python
Python如何实现在字符串里嵌入双引号或者单引号
Mar 02 Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 Python
python线程池如何使用
May 28 Python
Python 必须了解的5种高级特征
Sep 10 Python
python 下载m3u8视频的示例代码
Nov 11 Python
Python中re模块的元字符使用小结
Apr 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
DOTA2 玩家自创拉野攻略 特色英雄快速成长篇
2020/04/20 DOTA
为什么那些咖啡爱好者大多看不上连锁咖啡店?
2021/03/06 咖啡文化
PHP网站提速三大“软”招
2006/10/09 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
jquery之Document元素选择器篇
2008/08/14 Javascript
javascript下判断一个对象是否具有指定名称的属性的的代码
2010/01/11 Javascript
escape函数解决js中ajax传递中文出现乱码问题
2014/10/30 Javascript
javascript笛卡尔积算法实现方法
2015/04/08 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
js实现StringBuffer的简单实例
2016/09/02 Javascript
js图片延迟加载(Lazyload)三种实现方式
2017/03/01 Javascript
微信小程序 仿猫眼实现实例代码
2017/03/14 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
[06:21]2014DOTA2国际邀请赛 庆祝VG首阶段领跑;B叔为挣牛排半夜整理情报
2014/07/13 DOTA
Python Web服务器Tornado使用小结
2014/05/06 Python
Python入门篇之文件
2014/10/20 Python
Python3.2中Print函数用法实例详解
2015/05/19 Python
Python3.X 线程中信号量的使用方法示例
2017/07/24 Python
python实现word 2007文档转换为pdf文件
2018/03/15 Python
Python 创建空的list,以及append用法讲解
2018/05/04 Python
python实现俄罗斯方块
2018/06/26 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
OpenCV 表盘指针自动读数的示例代码
2020/04/10 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
UNIX特点都有哪些
2016/04/05 面试题
初中生学习的自我评价
2013/11/14 职场文书
《阳光》教学反思
2014/02/23 职场文书
考试保密承诺书
2014/08/30 职场文书
优秀共产党员推荐材料
2014/12/18 职场文书
2015年教研室工作总结范文
2015/05/23 职场文书
pytorch 实现变分自动编码器的操作
2021/05/24 Python
如何创建一个创建MySQL数据库中的datetime类型
2022/03/21 MySQL