用 Python制作圖片驗證碼?也就三行代碼罷了

Pillow庫
1、Image:含有圖片對象主體上的一些應用 2、ImageDraw:畫筆,用來向圖片上添加驗證碼 3、ImageFont:設置驗證碼的字體形式 4、ImageFilter:對圖片驗證碼進行模糊處理
from?PIL?import?Image,ImageDraw,ImageFont,ImageFilter
import?random,string
#獲取隨機4個字符組合
def?getRandomChar():
????chr_all?=?string.ascii_letters+string.digits
????chr_4?=?''.join(random.sample(chr_all,4))
????return?chr_4
#獲取隨機顏色
def?getRandomColor(low,high):
????return?(random.randint(low,high),random.randint(low,high),random.randint(low,high))
#制作驗證碼圖片
def?getPicture():
????width,height?=?180,60
????#創(chuàng)建空白畫布
????image?=?Image.new('RGB',(width,height),getRandomColor(20,100))
????#驗證碼的字體
????font?=?ImageFont.truetype('C:/Windows/fonts/stxinwei.ttf',40)
????#創(chuàng)建畫筆
????draw?=?ImageDraw.Draw(image)
????#獲取驗證碼
????char_4?=?getRandomChar()
????#向畫布上填寫驗證碼
????for?i?in?range(4):
????????draw.text((40*i+10,0),char_4[i],font?=?font,fill=getRandomColor(100,200))
????#繪制干擾點
????for?x?in?range(random.randint(200,600)):
????????x?=?random.randint(1,width-1)
????????y?=?random.randint(1,height-1)
????????draw.point((x,y),fill=getRandomColor(50,150))
????#模糊處理
????image?=?image.filter(ImageFilter.BLUR)
????image.save('./%s.jpg'?%?char_4)
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

captcha庫

pip?install?captcha?-i?https://pypi.tuna.tsinghua.edu.cn/simple
from?captcha.image?import?ImageCaptcha
import?random,string
chr_all?=?string.ascii_letters?+?string.digits
chr_4?=?''.join(random.sample(chr_all,?4))
image?=?ImageCaptcha().generate_image(chr_4)
image.save('./%s.jpg'?%?chr_4)

gvcode庫
pip?install?graphic-verification-code?-i?https://pypi.tuna.tsinghua.edu.cn/simple
import?gvcode
s,v?=?gvcode.generate()
s.save('./%s.jpg'?%?v)
print(type(s))
print(v)
print(type(v))


說在最后
更多閱讀
特別推薦

點擊下方閱讀原文加入社區(qū)會員
評論
圖片
表情
