代码:
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# @File : verificationcode.py
# @Author : 王韧锋
# @Modify Time : 2019/12/2 19:44
# @Version : 1.0
# @Desciption : 生成验证码
from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random
code = []
# 生成随机数
def rndChar():
number = random.randint(0, 9)
select = random.randint(1, 2)
if select == 1:
ch = chr(random.randint(65, 90))
code.append(ch)
return ch
else:
code.append(number)
return str(number)
# 随机颜色1
def rndColor():
return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
def rndColor2():
return (random.randint(32, 124), random.randint(32, 127), random.randint(32, 127))
def yanzheng(input):
if (len(input) != 4):
return 0
for i in range(0, 4):
print(input[i] + "-----------" + str(code[i]))
if (input[i] != str(code[i])):
print("验证码错误")
return 0
return 1
width = 60 * 4
height = 60
image = Image.new('RGB', (width, height), (255, 255, 255))
# 创建Font对象:
font = ImageFont.truetype('C:/Windows/Fonts/Arial.ttf', 36)
# 创建Draw对象:
draw = ImageDraw.Draw(image)
# 填充每个像素:
for x in range(width):
for y in range(height):
draw.point((x, y), fill=rndColor())
for t in range(4):
draw.text((60 * t + 10, 10 + random.randint(0, 10)), rndChar(), font=font, fill=rndColor2())
image = image.filter(ImageFilter.BLUR)
image.save('code.jpg')
inputcode = input("请输入验证码:")
if (yanzheng(inputcode) == 1):
print("验证成功")
else:
print("验证失败")
# print("您输入的验证码为:")
# print(code)
# 模糊: