Python生成随机图形验证码的方法

  介绍

这篇文章给大家分享的是有关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生成随机图形验证码的方法