用python做验证码

引用PIL模块

效果图展示:

from PIL import ImageDraw,ImageFont
from PIL import Image
import random
from io import BytesIO#在内存中创建
def get_random_color():
    color=(random.randint(0,255),random.randint(0,255),random.randint(0,255))
    return color
image=Image.new('RGB',(200,30),(255,255,255))
draw=ImageDraw.Draw(image)
for i in range(4):
    random_number=str(random.randint(0,9))
    random_lower_alpha=chr(random.randint(97,122))
    random_upper_alpha=chr(random.randint(65,90))
    rand_python=random.choice([random_number,random_lower_alpha,random_upper_alpha])
    draw.text((i*50+10,0),rand_python,get_random_color(),font=ImageFont.truetype('1.ttf',28),align='center')

for i in range(4):#制造线
    x1=random.randint(0,200)
    y1=random.randint(0,30)
    x2=random.randint(0,200)
    y2=random.randint(0,30)
    draw.line([(x1,y1),(x2,y2)],fill=get_random_color())

for i in range(100):#制造点
    x1=random.randint(0,200)
    y1=random.randint(0,30)
    x2=random.randint(0,200)
    y2=random.randint(0,30)
    draw.point([(x1,y1),(x2,y2)],fill=get_random_color())

f=open('验证码.jpg','wb')
image.save(f)
f.close()
#以下是在内存中创建验证码,比在磁盘上创建速度快
# f=BytesIO()
# image.save(f,'jpg')
# data=f.getvalue()
# f.close()

猜你喜欢

转载自blog.csdn.net/weixin_42557907/article/details/82779537