Python实现随机生成图片验证码详解
作者:小木_. 发布时间:2023-02-26 12:20:20
标签: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()
来源:https://blog.csdn.net/weixin_46625757/article/details/122531906
0
投稿
猜你喜欢
- jQuery.sheet 是一个用于创建 Web 电子表格的 jQuery插件,其功能及界面风格和微软的 Excel 非常相似,使得用户不至
- 读写 JSON 数据问题你想读写 JSON(JavaScript Object Notation) 编码格式的数据。解决方案json模块提供
- 如下所示:import serialimport timet = serial.Serial('com6', 115200)
- <%dim ylj,ywj,Mlpath,Shell,rarcomm,RetCode,cmd,comm,fsoM
- 作为一个数据分析师,应该信奉一句话——“一图胜千言”。不过这里要说的并不是数据可视化,而是一款全民向的产品形态——表情包!!!!表情包不仅仅
- 在SQL查询中,关键词Like可提供模糊查询功能,它通常与通配符一起使用。1 Like条件适用数据库字段类型 &nbs
- 利用pymongo包进行数据库的连接,使用xlrd包读取excel数据,由于二者数据结构的不同,要将excel格式数据转换为json格式数据
- magpierss中就用到了snoopy,这让我有点兴趣去研究下这个咚咚。再SF上,找到了这个源代码。居然就是一个类,但不要笑看哦,功能可是
- 一、Tkinter什么是GUI图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方
- 大家好,为了进行调试和错误跟踪,人们在整个代码库中广泛使用日志,今天来看看如何在代码中定义日志,并探讨日志的权限。一、日志层级在开始之前,需
- 本文实例讲述了JS+CSS实现仿支付宝菜单选中效果代码。分享给大家供大家参考。具体如下:这是一个漂亮的JS+CSS仿支付宝菜单,总体风格和形
- 前言在两种python循环语句的使用中,不仅仅是循环条件达到才能跳出循环体。所以,在对python函数进行阐述之前,先对跳出循环的简单语句块
- 由传智播客教程整理,我们这里使用的是python2.7.x版本,就是2.7之后的版本,因为python3的改动略大,我们这里不用它。现在我们
- fnamtch就是filenamematch, 在python中利用符合linuxshell风格的匹配模块来进行文件名的匹配筛选工作。fnm
- 在制作网页以及编程的时候,适当的进行注释,不仅使自己的思路清晰,极大地减轻了维护的难度,而且方便项目组其他人了解你的代码,方便对代码的理解以
- 目录相关背景直方图计算法图像指纹与汉明距离平均哈希法(aHash)感知哈希算法(pHash)dHash算法在网上看到python做图像识别的
- 系列最后一篇来说说Python中的类与对象,Python这门语言是无处不对象,如果你曾浅要了解过Python,你应该听过Python是一种面
- 1.由于数据库设计问题造成SQL数据库新增数据时超时症状:Microsoft OLE DB Provider for SQL Server
- 我一直使用Microsoft的FrontPage 98来开发ASP/ADO之类的Internet数据库应用程序。现在我听说许多人都非常信奉采
- 代理服务原理很简单,就拿浏览器与web服务器来说。无非是A浏览器发request给B代理,B代理再把request把送给C web服务,然后