本篇内容主要讲解“怎么用Python实现随机生成图片验证码”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用Python实现随机生成图片验证码”吧!
导入模块
import random
from PIL import Image,ImageFont,ImageDraw
生成随机验证码
def rndtxt():
txt_list = []
# 大写字母
txt_list.extend([i for i in range(65,90)])
# 小写字母
txt_list.extend([i for i in range(97,123)])
# 数字
txt_list.extend([i for i in range(48,57)])
return chr(txt_list[random.randint(0,len(txt_list)-1)])
作为待会生成的图片背景色和字体色
def rndbgcolor():
# 背景颜色
return (random.randint(64,255),random.randint(64,255),random.randint(64,255))
def rndtxtcolor2():
# 字体颜色
return (random.randint(32,127),random.randint(32,127),random.randint(32,127))
进行生成打印验证码并以图片的形式打开,不保存图片文件,仅用于一时的验证码验证
def code():
weight = 240
hight = 60
image = Image.new('RGB',(weight,hight),(255,255,255))
font = ImageFont.truetype('msyh.ttc',36)
draw = ImageDraw.Draw(image)
# 填充背景颜色
for x in range(weight):
for y in range(hight):
draw.point((x,y),fill=rndbgcolor())
# 生成随机验证码
for T in range(4):
rndtxt_2 = rndtxt()
print(rndtxt_2) # 打印验证码的值
draw.text((60 * T + 10,10),rndtxt_2,font=font,fill=rndtxtcolor2())
image.show()
完整代码:
#!/usr/bin/env python3
import random
from PIL import Image,ImageFont,ImageDraw
def rndtxt():
txt_list = []
# 大写字母
txt_list.extend([i for i in range(65,90)])
# 小写字母
txt_list.extend([i for i in range(97,123)])
# 数字
txt_list.extend([i for i in range(48,57)])
return chr(txt_list[random.randint(0,len(txt_list)-1)])
def rndbgcolor():
# 背景颜色
return (random.randint(64,255),random.randint(64,255),random.randint(64,255))
def rndtxtcolor2():
# 字体颜色
return (random.randint(32,127),random.randint(32,127),random.randint(32,127))
def code():
weight = 240
hight = 60
image = Image.new('RGB',(weight,hight),(255,255,255))
font = ImageFont.truetype('msyh.ttc',36)
draw = ImageDraw.Draw(image)
# 填充背景颜色
for x in range(weight):
for y in range(hight):
draw.point((x,y),fill=rndbgcolor())
# 生成随机验证码
for T in range(4):
rndtxt_2 = rndtxt()
print(rndtxt_2) # 打印验证码的值
draw.text((60 * T + 10,10),rndtxt_2,font=font,fill=rndtxtcolor2())
image.show()
code()
到此,相信大家对“怎么用Python实现随机生成图片验证码”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。