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使用urllib2实现发送带cookie的请求
Apr 28 Python
在Python的Django框架中显示对象子集的方法
Jul 21 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
python在ubuntu中的几种安装方法(小结)
Dec 08 Python
利用Django提供的ModelForm增删改数据的方法
Jan 06 Python
详解Python 字符串相似性的几种度量方法
Aug 29 Python
详解基于python的多张不同宽高图片拼接成大图
Sep 26 Python
python NumPy ndarray二维数组 按照行列求平均实例
Nov 26 Python
TensorFlow设置日志级别的几种方式小结
Feb 04 Python
python小白切忌乱用表达式
May 29 Python
python 实现性别识别
Nov 21 Python
如何利用pygame实现打飞机小游戏
May 30 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中jpgraph类库的使用介绍
2013/08/08 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
smarty内置函数section的用法
2015/01/22 PHP
php分割合并两个字符串的函数实例
2015/06/19 PHP
CentOS下PHP7的编译安装及MySQL的支持和一些常见问题的解决办法
2015/12/17 PHP
PHP下SSL加密解密、验证、签名方法(很简单)
2020/06/28 PHP
javascript 操作select下拉列表框的一点小经验
2010/03/20 Javascript
js调用css属性写法
2013/09/21 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
javascript动态生成树形菜单的方法
2015/11/14 Javascript
第四章之BootStrap表单与图片
2016/04/25 Javascript
JS计算输出100元钱买100只鸡问题的解决方法
2018/01/04 Javascript
jQuery幻灯片插件owlcarousel参数说明中文文档
2018/02/27 jQuery
详解vue的diff算法原理
2018/05/20 Javascript
在vue中使用vue-echarts-v3的实例代码
2018/09/13 Javascript
基于Vue中的父子传值问题解决
2020/07/27 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
[03:17]DOTA2英雄基础教程 剧毒术士
2013/12/12 DOTA
Python的re模块正则表达式操作
2016/05/25 Python
深入理解python中的atexit模块
2017/03/07 Python
Python序列化基础知识(json/pickle)
2017/10/19 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
python高效过滤出文件夹下指定文件名结尾的文件实例
2018/10/21 Python
Python实现的微信支付方式总结【三种方式】
2019/04/13 Python
Python如何在DataFrame增加数值
2020/02/14 Python
Python matplotlib实时画图案例
2020/04/23 Python
python-地图可视化组件folium的操作
2020/12/14 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
HTML5之HTML元素扩展(上)—新增加的元素及使用概述
2013/01/31 HTML / CSS
广州某公司软件工程师面试题
2014/12/22 面试题
西安交大自主招生自荐信
2014/01/27 职场文书
医院病假条怎么写
2015/08/17 职场文书
应届毕业生的自我评价
2019/06/21 职场文书
个人落户申请书怎么写?
2019/06/28 职场文书
Python数据分析之pandas函数详解
2021/04/21 Python
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers