码迷,mamicode.com
首页 > 其他好文 > 详细

PIL 生成随机验证码图片

时间:2020-07-16 12:26:42      阅读:69      评论:0      收藏:0      [点我收藏+]

标签:rom   poi   edr   使用   gre   web   git   height   tran   

学习使用PIL生成随机验证码图片的实例!

效果:

 

 
技术图片
 
代码:
# 使用生成随机验证码图片
# 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()

 

PIL 生成随机验证码图片

标签:rom   poi   edr   使用   gre   web   git   height   tran   

原文地址:https://www.cnblogs.com/lab-zj/p/13321601.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!