介绍
这篇文章给大家分享的是有关Python生成随机图形验证码的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。
<强> Python生成随机图形验证码强>
使用Python生成随机图片验证码,需要使用枕头模块
<强> 1。安装枕头模块强>
pip install 枕头
<强> 2.枕头模块的基本使用强>
1。创建图片
得到PIL import 形象 #定义使用图像类实例化一个长为400 px,宽为400 px,基于RGB的(255255255)颜色的图片 img1=Image.new(模式=癛GB"大?(400400),颜色=(255255255)) #把生成的图片保存为“pic.png"格式 with 开放(“pic.png",“wb"), as f: ,,,img1.save (f,格式=皃ng") #显示图片 img1.show ()
运行程序,程序会在py文件的同级下生成一个名为“pic.png"的小图片,图片长为400 px,宽为400 px,颜色为白色。
2。创建画笔
#创建画笔,用于在图片上生成内容 draw1=ImageDraw.Draw (img1模式=癛GB")
3。在图片上生成点
#在(100100)坐标上生成一个红点,指定的坐标不能超过图片的尺寸 draw1.point([100100],药丸=皉ed") #在(80、80)坐标上生成一个黑点,指定的坐标不能超过图片的尺寸 draw1.point((80、80),填补=(0,0,0))
4。在图片上画线
第号一个括号里面的参数是坐标,前两个数为开始坐标,后两个数为结束坐标 #括号里的第二个参数指定颜色,可以直接指定,也可以用RGB来表示颜色 draw1.line((100100100300),填补=皉ed") draw1.line((100200200100),填补=癰lue")
运行程序,画笔会在(100100年)到(100300)坐标之间画一条红色的竖线,在(100200)到(200100)坐标之间画一根蓝色的斜线。
5。在图片上画圆
#括号里的第一个参数是坐标,前两个数为起始坐标,后两个为结束坐标 #用这两个坐标之间的正方形区域生成一个圆,大括号里的第二个参数为圆的开始角度 #第三个参数为圆的结束角度,0到360表示所画的是一个完整的圆形, #也可以指定的数字来生成一段为圆弧,最后一个参数表示颜色,也可以用RGB来表示想要的颜色 draw1.arc((100100300300), 0360年,填补=皉ed") draw1.arc((0, 0300300), 0, 90年,填补=癰lue")
6。在图片上写文本
#使用画笔的文本方法在图片上生成文本 第号一个参数为坐标,第二个参数为所有生成的文本的内容 #第三个参数为文本的颜色 draw1.text ((0,0),“python",“blue")
7。在图片上生成指定字体的文本
#先实例化一个字体对象,第一个参数表示字体的路径,第二个参数表示字体大小 font1=ImageFont.truetype (“One  Chance.ttf", 28) #在图片上生成字体 第号一个括号里的参数表示坐标,第二个参数表示写入的内容 #第三个参数表示颜色,第四个参数表示使用的字体对象 draw1.text ([200200],“linux",“red",字体=font1)
图片验证码的实例
#导入随机模块 import 随机 #导入形象,ImageDraw, ImageFont模块 得到PIL import 形象,ImageDraw ImageFont #定义使用图像类实例化一个长为120 px,宽为30 px,基于RGB的(255255255)颜色的图片 img1=Image.new(模式=癛GB"、大?(120年,30),颜色=(255255255)) ,#实例化一支画笔 draw1=ImageDraw.Draw (img1模式=癛GB") #定义要使用的字体 font1=ImageFont.truetype (“One  Chance.ttf", 28) for 小姐:拷贝范围(5): ,,,#每循环一次,从a到z中随机生成一个字母或数字 ,,,# 65到90为字母的ASCII码,使用杆把生成的ASCII码转换成字符 ,,,# str把生成的数字转换成字符串 ,,,char1=random.choice([科(random.randint (65、90), str (random.randint (0, 9)))) ,,,, ,,,#每循环一次重新生成随机颜色 ,,,color1=(random.randint (0255), random.randint (0255), random.randint (0255)) ,,,, ,,,#把生成的字母或数字添加到图片上 ,,,#图片长度为120 px,要生成5个数字或字母则每添加一个,其位置就要向后移动24 px ,,,draw1.text([0]我* 24日,char1, color1,字体=font1) #把生成的图片保存为“pic.png"格式 with 开放(“pic.png",“wb"), as f: ,,,img1.save (f,格式=皃ng")Python生成随机图形验证码的方法