python之路

使用PIL生成验证码

2020-04-18  本文已影响0人  非鱼2018

效果:


image.png
from PIL import Image, ImageFont, ImageDraw, ImageFilter
import random

# 绘制验证码
img = Image.new('RGB', (200, 100), color='White')
draw_obj = ImageDraw.Draw(img)


def get_color():
    #生成随机颜色
    return random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)


def get_char():
    # 生成随机数字或字母的组合
    import string
    return random.choice(string.ascii_letters+string.digits)


for i in range(200):
    for j in range(100):
        draw_obj.point((i, j), fill=get_color())

font = ImageFont.truetype('C:\\Windows\\Fonts\\phagspab.ttf', 60)
for i in range(4):
    draw_obj.text((i * 50, random.randint(0,50)), text=get_char(), font=font, fill=random.choice(['red','blue','yellow','black']))

# 加干扰线-随机加50条干扰线
for i in range(50):
    draw_obj.line((random.randint(0,200),random.randint(0,100),random.randint(0,200),random.randint(0,100)),fill='black')
img.filter(ImageFilter.EMBOSS)
img.show()
上一篇下一篇

猜你喜欢

热点阅读