效果:
代碼:
# 生成隨機驗證碼圖片 import string from random import randint, sample from PIL import Image, ImageDraw, ImageFont, ImageFilter # Image 負責處理圖片 # ImageDraw 畫筆 # ImageFont 文字 # ImageFileter 濾鏡 # 定義變量 img_size = (150,50) # 定義畫布大小 img_rgb = (255,255,255) # 定義畫布顏色,白色 img = Image.new("RGB",img_size,img_rgb) img_text = " ".join(sample(string.ascii_letters+string.digits, 5)) # print(img_text.replace(' ','')) # 畫圖 drow = ImageDraw.Draw(img) for i in range(10): # 隨機畫線 drow.line([tuple(sample(range(img_size[0]),2)), tuple(sample(range(img_size[0]),2))], fill=(0,0,0)) for i in range(99): # 隨機畫點 drow.point(tuple(sample(range(img_size[0]),2)), fill=(0,0,0)) # 文字 font = ImageFont.truetype("simsun.ttc", 24) # 定義文字字體和大小 drow.text((6,6), img_text, font=font, fill="green") # 扭曲圖片和濾鏡 params = [ 1 - float(randint(1,2)) / 100, 0, 0, 0, 1 - float(randint(1,10)) /100, float(randint(1,2)) / 500, 0.001, float(randint(1,2)) / 500 ] img = img.transform(img_size, Image.PERSPECTIVE, params) img = img.filter(ImageFilter.EDGE_ENHANCE_MORE) # 展示圖片 img.show()