使用captcha模块生成图形验证码
时间:2022-05-04
本文章向大家介绍使用captcha模块生成图形验证码,主要内容包括安装、模块支持、生成验证码、具体参数、主要方法、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
目录[-]
captcha模块是专门用于生成图形验证码和语音验证码的Python三方库。图形验证码支持数字和英文单词。
安装
安装
可以直接使用 pip
安装,或者到项目地址下载安装。
模块支持
由于 captcha
模块内部是采用 PIL
模块生成图片,所以需要安装 PIL
模块才可以正常使用。
生成验证码
一般方法
使用其中 image
模块中的 ImageCaptcha
类生成图形验证码:
from captcha.image import ImageCaptcha
img = ImageCaptcha()
image = img.generate_image('python')
image.show()
image.save('python.jpg')
生成验证码如下:
generate_image()
方法接收一个字符串参数,将生成次字符串内容的验证码,返回的是 PIL
模块中的 Image
对象。可以使用 PIL
模块中 Image
对象的任何支持方法对其操作。例子中的 image.show()
和 image.save()
均是 PIL
模块的方法。
具体参数
ImageCaptcha(width=160, height=60, fonts=None, font_sizes=None)
类实例化时,还可传入四个参数:
-
width
: 生成验证码图片的宽度,默认为160个像素; -
height
: 生成验证码图片的高度,默认为60个像素; -
fonts
: 字体文件路径,用于生成验证码时的字体,默认使用模块自带DroidSansMono.ttf
字体,你可以将字体文件放入list或者tuple传入,生成验证码时将随机使用; -
font_sizes
: 控制验证码字体大小,同fonts
一样,接收一个list或者tuple,随机使用。
主要方法
-
generate_image(chars)
生成验证码的核心方法,生成chars
内容的验证码图片的Image
对象。 -
create_captcha_image(chars, color, background)
generate_image
的实现方法,可以通过重写此方法来实现自定义验证码样式。 -
create_noise_dots(image, color, width=3, number=30)
生成验证码干扰点。 -
create_noise_curve(image, color)
生成验证码干扰曲线。
- 高性能网站架构方案(二)——优化网站响应时间
- VFS四大对象之二 struct inode
- Ubuntu 安装 Redis
- 高性能网站架构方案(三) ——Varnish加速与Gearman任务分发
- mysql 性能优化方案 (转)
- 《Redis设计与实现》读书笔记(一)——简单动态字符串(SDS)
- Comet:基于 HTTP 长连接的“服务器推”技术
- 编码修炼 | 快速了解Scala技术栈
- VFS四大对象之三 struct dentry
- PHP 排序算法实现讲解
- PHP7新特性介绍
- VFS四大对象之四-struct file
- 《Redis设计与实现》读书笔记(二) ——Redis中的字典(Hash)
- 《Redis设计与实现》读书笔记(三) ——Redis中的链表
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法