github/Show me the code (10)

第 0010 題:使用 Python 生成類似于下圖中的字母驗證碼圖片

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
#from pylab import *
import random,numpy,string

path = "/home/hqi/source_code/python/show_me_the_code"
# generate 4 ramdom letters
text = random.sample(string.letters, 4)
#print text

# generate 3-D random array
rawArray = numpy.zeros((100, 300, 3), \
                        dtype=numpy.uint8)
sh = rawArray.shape
for i in range(sh[0]):
    for j in range(sh[1]):
        for k in range(sh[2]):
            rawArray[i][j][k] = random.randint(0,255)

# generate the background pic from 3-D array
im = Image.fromarray(rawArray)
draw = ImageDraw.Draw(im)

# add check code onto the background
for i in range(len(text)):
    draw.text((75*i+random.randint(0,40),random.randint(0,40)), text[i],
              font=ImageFont.truetype("/usr/share/fonts/truetype/./ubuntu-font-family/Ubuntu-R.ttf",60),
              fill = (random.randint(0,255),random.randint(0,255),random.randint(0,255)))

im.save(path+"/veri_code.jpg")
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,559評論 25 708
  • # Python 資源大全中文版 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,593評論 6 427
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,993評論 19 139
  • 從了解頭馬到要想加入,到準備計劃,我用了一個晚上的時間。Toastmaster簡稱頭馬,每個月有定期的活動,主要是...
    酥小栗閱讀 2,435評論 0 1
  • 當前天數:第30天。 剩余天數:70天。 參與人:我。 路程:5圈。 地點:家里的小區跑步場。 開始時間:06點3...
    Teratimes成長論閱讀 258評論 0 0