隨機生成驗證碼

隨機生成驗證碼


# -*- 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()

運行效果圖:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章