Python生成验证码 需要用到Pillow 模块(pip install pillow);
一. Pillow 模块使用的简单记录
1.导入模块
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
2.实例化
2.1 实例化图片对象
ImageCaptcha = Image.new(mode, sizee, color)
2.2 创建画笔
ImageDraw = ImageDraw.Draw(self.ImageCaptcha)
3.画图
3.1.画文字
ImageDraw .text(xy, text,fill,font)
xy:字体的坐标(字体的左上角的坐标),
text:指定的文本内容,
fill:指定文本的颜色,
font:指定字体文件(通过ImageFont类来定义)
3.2.画线条
ImageDraw.line(xy=[begin, end], fill=fill, width=width)
xy:线条的起始位置,结束位置,
fill:指定文本的颜色,
width:线条粗细
3.3.画矩形
ImageDraw.rectangle( xy, fill=None, outline=None, width=0)
xy:对角线的起始位置,到结束位置,
fill:填充颜色,
outline:指定线条的颜色
3.4.画椭圆
ImageDraw.arc(xy, start, end, fill=None, width=0)
xy:椭圆的外切矩形的对角线的起始位置,到结束位置,
start:起始角度,
end:结束角度,
fill:填充颜色,
3.4.画圆
ImageDraw.pieslice(self, xy, start, end, fill=None, outline=None, width=0)
xy:圆的外切矩形的对角线的起始位置,到结束位置,
start:起始角度,
end:结束角度,
fill:填充颜色,
outline:指定线条的颜色
3.4.画点
ImageDraw.point(self, xy, fill=None)
xy:坐标,
fill:填充颜色,
二. 生成一个图片验证码
#!/usr/bin/env python3
#_*_ coding:utf-8 _*_
import string
import random
from PIL import Image, ImageDraw, ImageFont, ImageFilter
class CreateImageCaptcha(object):
def __init__(self,
font_type, # 必须提供字体文件
size=(160, 60),
str_characters=string.digits + string.ascii_letters,
str_len=4,
font_sizes=range(40, 50),
bg_color='pink',
draw_lines_or_no=True,
line_number=(4, 6),
draw_points_or_no=True,