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下利用OpenCV来旋转图像的教程
Apr 16 Python
为Python程序添加图形化界面的教程
Apr 29 Python
将Python代码打包为jar软件的简单方法
Aug 04 Python
解决python2.7 查询mysql时出现中文乱码
Oct 09 Python
TensorFlow神经网络优化策略学习
Mar 09 Python
详解python中的装饰器
Jul 10 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
关于sys.stdout和print的区别详解
Dec 05 Python
Pycharm debug调试时带参数过程解析
Feb 03 Python
使用python自动追踪你的快递(物流推送邮箱)
Mar 17 Python
vscode调试django项目的方法
Aug 06 Python
如何用Django处理gzip数据流
Jan 29 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与javascript的两种交互方式
2006/10/09 PHP
php printf输出格式使用说明
2010/12/05 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
typecho插件编写教程(二):写一个新插件
2015/05/28 PHP
新浪的图片新闻效果
2007/01/13 Javascript
Jquery AJAX 框架的使用方法
2009/11/03 Javascript
js 获取屏幕各种宽高的方法(浏览器兼容)
2013/05/15 Javascript
javascript在myeclipse中报错的解决方法
2013/10/29 Javascript
jquery高级编程的最佳实践详解
2014/03/23 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
简单实现兼容各大浏览器的js复制内容到剪切板
2015/09/09 Javascript
JS判断form内所有表单是否为空的简单实例
2016/09/09 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
AngularJS使用ng-repeat和ng-if实现数据的删选显示效果示例【适用于表单数据的显示】
2016/12/13 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
vue中mint-ui环境搭建详细介绍
2017/04/06 Javascript
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
前端路由&webpack基础配置详解
2019/06/10 Javascript
python sqlobject(mysql)中文乱码解决方法
2008/11/14 Python
python使用json序列化datetime类型实例解析
2018/02/11 Python
详解pyqt5 动画在QThread线程中无法运行问题
2018/05/05 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
对Python3+gdal 读取tiff格式数据的实例讲解
2018/12/04 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
Python使用matplotlib绘制三维参数曲线操作示例
2019/09/10 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
Python转换itertools.chain对象为数组的方法
2020/02/07 Python
PyTorch中model.zero_grad()和optimizer.zero_grad()用法
2020/06/24 Python
Keras模型转成tensorflow的.pb操作
2020/07/06 Python
CSS3的 fit-content实现水平居中
2017/09/07 HTML / CSS
使用HTML5 Canvas API中的clip()方法裁剪区域图像
2016/03/25 HTML / CSS
大都会艺术博物馆商店:The Met Store
2018/06/22 全球购物
初中教师个人工作总结
2015/02/10 职场文书
2015年学校教育教学工作总结
2015/04/22 职场文书
红白喜事主持词
2015/07/06 职场文书
中秋节感想
2015/08/10 职场文书