Python如何生成随机图形验证码
发布时间:2025-10-24 16:05:42

python生成随机图形验证码
pilllow模块需要使用python生成随机图像验证码
1.安装pillow模块
pipinstallpillow
2.基本使用pillow模块
1.创建图片
fromPILimportImage
#以RGB(255、255、255、255)颜色的图片定义一个长400px、宽400px的Image类实例化
img1=Image.new(mode="RGB",size=(400,400),color=(255,255,255))
#保存生成的图片"pic.png"格式
withopen("pic.png","wb")asf:
img1.save(f,format="png")
#显示图片
img1.show()在py文件的同级下,程序将生成一个名称"pic.png"图片长400px,宽400px,颜色为白色。
2.创建画笔
#在图片上创建画笔生成内容 draw1=ImageDraw.Draw(img1,mode="RGB")
3.在图片上生成点
#一个红点生成在(100,100)坐标上,指定的坐标不得超过图片的大小 draw1.point([100,100],pill="red") #在(80、80)坐标上产生黑点,指定坐标不得超过图片尺寸 draw1.point([80,80],fill=(0,0,0))
相关推荐:Python视频教程
4.在图片上画线
#第一个括号中的参数是坐标,前两个是开始坐标,后两个是结束坐标 #括号中的第二个参数可以直接指定颜色,也可以用RGB来表示颜色 draw1.line(100,100,100,300),fill="red") draw1.line(100,200,200,100),fill="blue")
在操作程序中,画笔会在(100、100)到(100、300)坐标之间画一条红色的垂直线,在(100、200)到(200、100)坐标之间画一条蓝色的斜线。
5.在图片上画一个圆圈
#括号中的第一个参数是坐标,前两个是开始坐标,后两个是结束坐标 #使用两个坐标之间的正方形区域生成一个圆,括号中的第二个参数是圆的开始角度 #第三个参数是圆的结尾角,0到360表示画的是一个完整的圆, #指定的数字也可以生成一个圆弧,最后一个参数表示颜色,或者RGB表示所需的颜色 draw1.arc(100,100,300,300),0,360,fill="red") draw1.arc(0,0,300,300),0,90,fill="blue")
6.在图片上写文本
#使用刷子的text方法在图片上生成文本 #第一个参数是坐标,第二个参数是所有生成文本的内容 #第三个参数是文本的颜色 draw1.text([0,0],"python","blue")
7.在图片上生成指定字体的文本
#首先对一个字体对象进行实例化,第一个参数表示字体路径,第二个参数表示字体大小
font1=ImageFont.truetype("OneChance.ttf",28)
#在图片上生成字体
#第一个括号中的参数表示坐标,第二个参数表示写入的内容
#第三个参数表示颜色,第四个参数表示使用的字体对象
draw1.text([200,200],"linux","red",font=font1)图片验证码的实例
#导入random模块进入random模块
importrandom
#导入Image,ImageDraw,Imagefont模块
fromPILimportImage,ImageDraw,ImageFont
#以RGB(255、255、255、255)颜色定义Image类实例化图片
img1=Image.new(mode="RGB",size=(120,30),color=(255,255,255))
#实例化一支画笔
draw1=ImageDraw.Draw(img1,mode="RGB")
#定义要使用的字体
font1=ImageFont.truetype("OneChance.ttf",28)
foriinrange(5):
#每循环一次,从a到z随机生成一个字母或数字
#ASCII码为65至90字母,使用chr将生成的ASCII码转换为字符
#str将生成的数字转换为字符串
char1=random.choice([chr(random.randint(65,90)),str(random.randint(0,9)))
#每循环重新生成随机颜色
color1=(random.randint(0,255),random.randint(0,255),random.randint(0,255))
#在图片上添加生成的字母或数字
#图片长度为120px,为了生成5个数字或字母,每个添加一个,其位置将向后移动24px
draw1.text([i*24、0],char1,color1,font=font1)
#保存生成的图片"pic.png"格式
withopen("pic.png","wb")asf:
img1.save(f,format="png")在程序的同级目录中,程序生成一个包含随机字符的小图片。
下一篇 Python模块导入的相关介绍
