基于Python写一个简单的验证码,简单易学。

  • 1:如果没有安装pillow模块的,先安装一下pillow模块

                              命令:pip install pillow

  • 2:代码:
#引入绘图模块
from PIL import Image,ImageDraw,ImageFont
#引入随机函数模块
import random
import io

def verifycode():
	#定义变量,用于画面的背景颜色,宽,高 
	bgcolor = (random.randrange(20,100),random.randrange(20,100),random.randrange(20,100))
	width = 100
	height = 50
	#创建画面对象
	im = Image.new('RGB',(width,height),bgcolor)
	#创建画笔对象
	draw = ImageDraw.Draw(im)
	#调用画笔的point()函数绘制噪点
	for i in range(0,100):
		xy = (random.randrange(0,width),random.randrange(0,height))
		fill = (random.randrange(0,255),255,random.randrange(0,255))
		draw.point(xy,fill=fill)
	#定义验证码的备选值
	str = '1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'
	#随机选取4个值作为验证码
	rand_str = ''
	for i in range(0,4):
		rand_str +=str[random.randrange(0,len(str))]
	# 构造字体对象
	font = ImageFont.truetype(r'C:\Windows\Fonts\AdobeArabic-Bold.otf',40)
	#构造字体颜色
	fontcolor1 = (255,random.randrange(0,255),random.randrange(0,255))
	fontcolor2 = (255,random.randrange(0,255),random.randrange(0,255))
	fontcolor3 = (255,random.randrange(0,255),random.randrange(0,255))
	fontcolor4 = (255,random.randrange(0,255),random.randrange(0,255))
	#绘制4个字
	draw.text((5,2),rand_str[0],font=font,fill=fontcolor1)
	draw.text((25,2),rand_str[1],font=font,fill=fontcolor2)
	draw.text((50,2),rand_str[2],font=font,fill=fontcolor3)
	draw.text((75,2),rand_str[3],font=font,fill=fontcolor4)
	im.show()
	
if __name__ == '__main__':
	verifycode()

 

 

     

全部评论

相关推荐

废铁汽车人:秋招真是牛鬼蛇神齐聚一堂
点赞 评论 收藏
分享
秋招进行到现在终于能写总结了。完全没想到战线会拉这么长,过程会如此狼狈,不过更应该怪自己太菜了。好在所有的运气都用在了最后,也是有个去处。背景:双2本硕科班,无竞赛,本科一段研究所实习,硕士一段大厂暑期实习但无转正。技术栈是C++ & Golang,实习是客户端音视频(而且是鸿蒙端开发),简历两个C++项目一个Golang项目。主要投递岗位:后端,cpp软开,游戏服务端,测开,以及一些不拘泥于Java的岗位。从8月起总共投递123家公司,笔试数不清了,约面大约30家。offer/oc/意向:友塔游戏(第一个offer,面试体验很好,就是给钱好少南瑞继保(计算机科班点击就送(限男生),不...
乡土丁真真:佬很厉害,羡慕~虽然我还没有到校招的时候,也想讲一下自己的看法:我觉得不是CPP的问题,佬的背书双2,技术栈加了GO,有两段实习。投了123,面了30.拿到11个offer。这个数据已经很耀眼了。这不也是CPP带来的吗?当然也不止是CPP。至少来说在这个方向努力过的也会有好的结果和选择。同等学历和项目选java就会有更好的吗?我个人持疑问态度。当然CPP在方向选择上确实让人头大,但是我觉得能上岸,至于最后做什么方向,在我看来并不重要。至于CPP特殊,有岗位方向的随机性,java不是不挑方向,只是没得选而已。也希望自己以后校招的时候能offer满满
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务