随机生成验证码
程序员文章站
2022-05-19 20:57:00
...
随机生成验证码
# -*- coding: utf-8 -*-
"""
Created on Mon Sep 16 01:21:02 2019
@author: Administrator
"""
import random
from captcha.image import ImageCaptcha
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
num=['0','1','2','3','4','5','6','7','8','9']
alph=['a','b','c','d','e','f','g','h','i','j'
,'l','m','n','o','p','q','r','s','t','u',
'v','w','x','y','z']
ALPH=['A','B','C','D','E','F','G','H','I','J'
,'L','M','N','O','P','Q','R','S','T','U',
'V','W','X','Y','Z']
def random_captcha_text(size=4,charset=num+alph+ALPH):
captcha_text=[]
for i in range(size):
c=random.choice(charset)
captcha_text.append(c)
return captcha_text
def gen_captcha_image():
#生成验证码图片对象
image=ImageCaptcha()
#生成验证码字母数字的组合的字符串
captcha_text=random_captcha_text()
captcha_text="".join(captcha_text)
#传入字符串,生成一个png图片
catpchaInfo=image.generate(captcha_text)
#打开Image对象,生成验证码的信息和图片
captcha_image=Image.open(catpchaInfo)
captcha_image=np.array(captcha_image)
return captcha_text,captcha_image
if __name__=="__main__":
#生成验证码字符及图片
text,image=gen_captcha_image()
#显示出生成的验证码和图片
f=plt.figure()
ax=f.add_subplot(111)
ax.text(1.1,1.9,text,ha='center',va='center')
plt.imshow(image)
plt.show()
运行效果图: