Python生成随机验证码图片

依赖:pip install Pillow


from PIL import Image, ImageDraw, ImageFont, ImageFilter
from random import randint, choice


# 随机ASCII码生成数字或大小写字母
def rnd_char():
    return chr(choice([randint(48, 57), randint(65, 90), randint(97, 122)]))


# 背景颜色
def rnd_color():
    return randint(64, 255), randint(64, 255), randint(64, 255)


# 验证码颜色
def ran_color2():
    return randint(32, 127), randint(32, 127), randint(32, 127)


num = 5  # 生成num位的验证码
width = 50 * num  # 图宽
height = 60  # 图高
image = Image.new('RGB', (width, height), (255, 255, 255))

# 创建Font对象 .tff为字体文件 可自定义
font = ImageFont.truetype("Arial Black.ttf", 50)
# 创建Draw对象
draw = ImageDraw.Draw(image)
# 填充每个像素
for x in range(width):
    for y in range(height):
        draw.point((x, y), fill=rnd_color())
# 生成验证码
for k in range(num):
    draw.text((50 * k + randint(1, 10), randint(0, 5)), rnd_char(), font=font, fill=ran_color2())
# 对图片进行模糊处理
image = image.filter(ImageFilter.GaussianBlur)
image.save('rndcode.jpg', 'jpeg')

效果图:


code.jpg
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 相信大家利用 Python 写的爬虫应该遇到过要输入验证码的尴尬局面,又或者写了个自动填充表单的小程序,结果...
    迦度蓝洛阅读 16,629评论 2 35
  • 随着OCR技术的发展,图片验证码这种验证方式已经满足不了网站的验证需求了,输入验证码在这件事完全可以用机器来代替,...
    无穷369阅读 4,969评论 5 23
  • linux和windows下安装python拓展包-pycharm、numpy、scipy、matplotlib、...
    hzyido阅读 81,312评论 2 10
  • 第一步安装 Tesserocr的安装爬虫过程中难免会遇到各种各样的验证码,而大多数验证码还是图形验证码,这时候我们...
    何苦_python_java阅读 8,492评论 0 1
  • python学习笔记 声明:学习笔记主要是根据廖雪峰官方网站python学习学习的,另外根据自己平时的积累进行修正...
    renyangfar阅读 3,082评论 0 10