您的位置:首页 > 编程语言 > Python开发

Python 生成 图片验证码

2018-03-27 17:04 801 查看
python 生成图片验证码,真的很方便!人生苦短,快用 python吧。

先上图



# 生成图片验证码
from PIL import Image,ImageFont,ImageDraw,ImageFilter
import random

# 定义验证码的宽度和高度
width  = 110
height = 40
# 干扰点个数
disbPoint = 500
# 干扰线条数
disbLine  = 5

# 定义返回单个随机字符的方法
def rndChar():
return chr(random.randint(65,90))

# 定义方法返回随机颜色
def rndColor():
return random.randint(0,200)

# 定义方法返回随机字体大小
def rndFize():
return random.randint(20,35)

# x轴上随机
def rndX():
return random.randint(0, width)

# y轴上随机
def rndY():
return random.randint(0, height)

# 创建画布和draw对象
im   = Image.new('RGB', (width,height), (227,227,227))
draw = ImageDraw.Draw(im)

# 循环 不同颜色
for x in range(4):
# 加载字体,随机颜色
fnt = ImageFont.truetype("DeVinne.ttf", rndFize())
draw.text((29*x,5),rndChar(),font=fnt,fill=(rndColor(),rndColor(),rndColor()))

# 循环 干扰点
for y in range(disbPoint):
draw.point((rndX(),rndY()), fill=(rndColor(),rndColor(),rndColor()))

# 添加干扰线
for z in range(disbLine):
draw.line([(rndX(),rndY()), (rndX(),rndY())], fill=(rndColor(),rndColor(),rndColor()), width=1)

im.filter(ImageFilter.EDGE_ENHANCE).show()


参考文档:

https://pillow.readthedocs.io/en/latest/reference/Image.html

https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014320027235877860c87af5544f25a8deeb55141d60c5000
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息