隨機生成驗證碼
# -*- 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()
運行效果圖: