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爬虫入门教程--快速理解HTTP协议(一)
May 25 Python
python:pandas合并csv文件的方法(图书数据集成)
Apr 12 Python
Python实现栈和队列的简单操作方法示例
Nov 29 Python
python实现3D地图可视化
Mar 25 Python
解决Python在导入文件时的FileNotFoundError问题
Apr 10 Python
基于matplotlib xticks用法详解
Apr 16 Python
Python中Selenium库使用教程详解
Jul 23 Python
python利用线程实现多任务
Sep 18 Python
python tqdm实现进度条的示例代码
Nov 10 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 Python
matplotlib常见函数之plt.rcParams、matshow的使用(坐标轴设置)
Jan 05 Python
Elasticsearch 聚合查询和排序
Apr 19 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
第七节--类的静态成员
2006/11/16 PHP
php统计文件大小,以GB、MB、KB、B输出
2011/05/29 PHP
PHP 正则判断中文UTF-8或GBK的思路及具体实现
2013/11/26 PHP
Yii把CGridView文本框换成下拉框的方法
2014/12/03 PHP
今天你说520了吗?不仅有php表白书还有java表白神器
2016/05/20 PHP
php实现基于openssl的加密解密方法
2016/09/30 PHP
超清晰的document对象详解
2007/02/27 Javascript
Jquery 自定义动画概述及示例
2013/03/29 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
jquery密码强度校验
2015/12/02 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
javascript对浅拷贝和深拷贝的详解
2016/10/14 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
微信小程序 setData使用方法及常用错误解决办法
2017/05/11 Javascript
JS实现基于Sketch.js模拟成群游动的蝌蚪运动动画效果【附demo源码下载】
2017/08/18 Javascript
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
angularJs提交文本框数据到后台的方法
2018/10/08 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
python中os操作文件及文件路径实例汇总
2015/01/15 Python
Python中统计函数运行耗时的方法
2015/05/05 Python
Python实现简单的代理服务器
2015/07/25 Python
对python函数签名的方法详解
2019/01/22 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
Flesh Beauty官网:露华浓集团旗下彩妆品牌
2021/02/15 全球购物
就业协议书盖章的注意事项
2014/09/28 职场文书
全陪导游词开场白
2015/05/29 职场文书
个人收入证明范本
2015/06/12 职场文书
学历证明样本
2015/06/16 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
《吸血鬼:避世 血猎》官宣4.27发售 系列首款大逃杀
2022/04/03 其他游戏
详解Flutter和Dart取消Future的三种方法
2022/04/07 Java/Android
PHP面试题 wakeup魔法 Ezpop pop序列化与反序列化
2022/04/11 PHP