學習Python_實例:2.使用PIL 生成隨機驗證碼圖片

學習使用PIL生成隨機驗證碼圖片的實例!

效果:


yanzhengma.gif

代碼:

# 使用生成隨機驗證碼圖片
# Python 3.5.1

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()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,057評論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,568評論 19 139
  • 發(fā)現(xiàn) 關注 消息 iOS 第三方庫、插件、知名博客總結 作者大灰狼的小綿羊哥哥關注 2017.06.26 09:4...
    肇東周閱讀 15,346評論 4 61
  • 1. 把《聲律啟蒙》上卷的“一東”部分摘錄出來,朗讀三遍。 云對雨雪對風晚照對晴空,來個鴻對去燕,宿鳥對鳴蟲,三尺...
    郁金香小姐閱讀 234評論 2 0
  • 忙完手頭工作,我習慣性地翻看朋友圈的更新,看到王維審老師朋友圈的更新,一篇題為《別亂了自己的初心》的文章深深...
    暖陽西子閱讀 346評論 0 0

友情鏈接更多精彩內容