验证码的生成

py的库就是多,简单应用,最近看了一个验证码生成的简单操作,挺有意思的,直接上代码,看吧。

# coding=utf-8
import random
from PIL import Image, ImageFont, ImageDraw
# 随机生成大小写字母数字
def get_rand(many):
	for i in range(many):
		s = ''
		n = random.randint(1, 2)
		if n == 1:
			num1 = random.randint(0, 9)
			s += str(num1)
		else:
			n1 = random.randint(1, 2)
			n2 = random.randint(1, 26)
			if n1 == 1:
				num1 = chr(64+n2)
				s += num1
			else:
				num1 = chr(96+n2)
				s += num1
	return s
# 随机颜色
def rnd_color():
	return (random.randint(64, 255), random.randint(64, 255), random.randint(64, 255))
# 随机背景颜色
def rnd_color2():
	return (random.randint(32, 127), random.randint(32, 127), random.randint(32, 127))
# 设置图像模式尺寸颜色
width = 60*4
height = 60
# 显示
image = Image.new('RGB', (width, height), (0, 0, 0))
# 创建字体对象
font = ImageFont.truetype('AGENCYB.TTF', 40)
# 写入对象
draw = ImageDraw.Draw(image)
# 填充像素点
for i in range(width):
	for j in range(height):
		draw.point((i, j), fill=rnd_color2())
draw.line((0, 0 + random.randint(0, height // 2), width, 0 + random.randint(0, height // 2)), fill=rnd_color())
draw.line((0, height - random.randint(0, height // 2), width, height - random.randint(0, height // 2)), fill=rnd_color())
draw.line((0, 0, 240, 60), width=10, fill=rnd_color())
for i in range(6):
	# 写入信息写入坐标
	draw.text((40*i+15, 10), get_rand(6), font=font, fill=rnd_color())
image.show()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值