1. 程式人生 > >2 最簡單的驗證碼生成

2 最簡單的驗證碼生成

# coding=utf-8
'''
Created on 2016年10月17日
程式作用:最基本的驗證碼,不帶任何干擾
'''
from __future__ import division
from __future__ import unicode_literals
import sys
reload(sys)
sys.setdefaultencoding('utf-8')  # @UndefinedVariable

from PIL import Image,ImageFont,ImageDraw
import random

 
# 返回隨機字母
def charRandom():
    return
chr((random.randint(65,90))) # 返回隨機數字 def numRandom(): return chr(random.randint(48,57)) # 返回隨機字母或者數字 def textRandom(): # 0-1的隨機數 if random.random()>0.7: return numRandom() else: return charRandom() # 隨機顏色 def colorRandom1(): return (random.randint(64,255
),random.randint(64,255),random.randint(64,255)) # 隨機長生顏色2 def colorRandom2(): return (random.randint(32,127),random.randint(32,127),random.randint(32,127)) def create_security_img(): width = 60 * 4 height = 60 # 建立一個全白的圖片 image = Image.new('RGB', (width,height), (255,255,255));
# 建立draw物件 draw = ImageDraw.Draw(image) # 建立font物件 注意這裡網上大部分資料都有問題 這裡應該自己去python對應的目錄找字型檔案的路徑 font = ImageFont.truetype(r'C:\Python27\Lib\site-packages\matplotlib\mpl-data\fonts\ttf\cmr10.ttf',36); # 輸出文字 for t in range(4): # 起始位置 要寫的字母 字型 顏色 draw.text((60*t+10,10), textRandom(),font=font, fill=colorRandom2()) return image if __name__ == '__main__': img=create_security_img() img.show()