使用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) 生成验证码干扰曲线。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏张善友的专栏

开源OCR引擎Tesseract

知名的开源OCR引擎Tesseract 3.0版本日前发布,可以在项目网站下载:http://code.google.com/p/tesseract-ocr, ...

1.5K100
来自专栏生信小驿站

R语言之可视化②点图

第一步:准备数据,使用的数据包括三列,len长度,supp是分类变量,dose是0.5mg,1mg和2mg三个变量。

22240
来自专栏计算机视觉及音视频工程

YVU格式Y分量存储为灰度

 Image为Android 5.0以上提供的类,用于保存YUV420格式的集合。

27460
来自专栏安恒网络空间安全讲武堂

hackme.inndy.tw的19道web题解(下)

目录 写在前面 ...... dafuq-manager 1 dafuq-manager 2. dafuq-manager 3. wordpress 1. w...

1.5K70
来自专栏数据小魔方

直方图

今天跟大家分享直方图的制作技巧! ▼ 直方图是统计描述常用的图表工具,虽然跟柱形图外表有点类似,但是制作方法却要比柱形图复杂得多,今天要跟大家分享两种直方图的制...

31760
来自专栏wym

opencv下imread函数返回值

openCV的imread()函数和imwrite()函数能支持各种静态图像文件格式。

50620
来自专栏图形学与OpenGL

实验二 直线DDA生成算法的GDI实现

理解基本图形元素光栅化的基本原理,掌握一种基本图形元素光栅化算法,利用GDI实现直线光栅化的DDA算法。

25520
来自专栏逍遥剑客的游戏开发

WoWModelViewer分析

24750
来自专栏Python小屋

Python使用matplotlib填充图形指定区域

本文代码重点在于演示Python扩展库matplotlib.pyplot中fill_between()函数的用法。 import numpy as np im...

32030
来自专栏数据派THU

独家 | 手把手教数据可视化工具Tableau

前言 数据的世界正在发生急剧变化,任何人都应该访问自己需要的数据,并具备获取任何数据的洞察力,而tableau正是帮我们洞察数据的好帮手。 Tableau作为B...

81370

扫码关注云+社区

领取腾讯云代金券