Python + PIL 图片验证码

本文介绍了使用Python的PIL库来生成图形验证码的方法。包括如何随机生成由字母和数字组成的验证码文本,以及如何将这些文本渲染到图片上并添加干扰线等效果。

导言:刚过完春节,感触很大,有淡淡的伤感,情感的问题不多说,工作还是需要继续往前推进的,今天产品经理说要把接口自动化完善下,想了想,那么多接口,请求参数那么多,返回参数那么多,要写代码去验证请求参数和返回参数的话,有点麻烦了,不管咋样,继续学习Python

PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了。PIL功能非常强大,但API却非常简单易用

推荐看下:廖雪峰PIL教程

直接上代码:

# 随机生成4位验证码(26字母或10个数字)
def get_text():
    source = list(string.letters)
    for index in range(0, 10):
        source.append(str(index))
    captcha = "".join(random.sample(source, 4))
    return captcha

# 生成图片验证码
def set_pic(text):
    message = 1
    width, height = 400, 200
    color = (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
    color_font = (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
    if message == 1:
        font = ImageFont.truetype("/root/MyProject/Yangtai/static/font/Arial.ttf", 100)
    else:
        font = ImageFont.truetype("C:/Users/009/Desktop/MyProject/Yangtai/static/font/Arial.ttf", 100)
    image = Image.new("RGB", (width, height), (255, 255, 255))
    draw = ImageDraw.Draw(image)
    draw.text((width/4, height/4), text, font=font, fill=color_font)
    for n in range(10):
        draw.line([(random.randint(0, width), random.randint(0, height)),
                (random.randint(0, width), random.randint(0, height))],
                fill=color)
    image = image.filter(ImageFilter.EDGE_ENHANCE_MORE)
    if message == 1:
        image.save("/root/MyProject/Yangtai/static/images/code.png")
    else:
        image.save("C:/Users/009/Desktop/MyProject/Yangtai/static/images/code.png")
    return draw

看下效果:

这里写图片描述

总结:

Python PIL图形化还是可以的哈,屌的人可以不可以拿来当PS呢

本人利用Bootstrap + EasyUI + Django开发网站:http://www.xuyangting.com/ 欢迎来访

阳台测试: 239547991(群号)

本人博客:http://xuyangting.sinaapp.com/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值