python,验证码生成
<pre>import string
import random
from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
from datetime import *
import uuid
import time
from PIL import ImageFilter
# 创建图片
image = Image.new("RGB", (180, 60), "white")
# 创建对象
draw = ImageDraw.Draw(image)
def rand_txt():
chars = string.ascii_letters + string.digits
s = [random.choice(chars) for j in range(5)]
m = ('{0}\n'.format(''.join(s)))
return m def rand_color():
randcolor=(random.randint(129, 255), random.randint(129, 255), random.randint(129, 255))
return randcolor def rand_txtcolor():
txtclor=(random.randint(32, 128), random.randint(32, 128), random.randint(32, 128))
return txtclor def rand_font():
f6 = ImageFont.truetype("C:\Windows\Fonts\STXINGKA.TTF", 48)
f5 = ImageFont.truetype("C:\Windows\Fonts\LetterGothicStd-BoldSlanted.otf", 48)
f4 = ImageFont.truetype("C:\Windows\Fonts\ONYX.TTF", 48)
f3 = ImageFont.truetype("C:\Windows\Fonts\LHANDW.TTF", 48)
f2 = ImageFont.truetype("C:\Windows\Fonts\LithosPro-Regular.otf", 48)
f1 = ImageFont.truetype("C:\Windows\Fonts\FRSCRIPT.TTF", 48)
randfont = random.choice([f1,f2,f3,f4,f5,f6])
return randfont def rand_name():#产生随机文件名
uuid_name = uuid.uuid4().time
randname ='F:\python\项目实战\验证码\yanzhenma\%s.png'%uuid_name
return randname def rand_huabu():#遍历画布随机填充颜色
for x in range(180):
for y in range(60):
draw.point((x, y), fill=rand_color()) def rand_yanzhengma():
x = random.randint(0, 90)
for i in range(x):# 随机产生干扰线
x = random.randint(0, 180)
y = random.randint(0, 60)
xl = random.randint(0, 60)
yl = random.randint(0, 60)
draw.line((x, y, x + xl, y + yl), fill=rand_txtcolor())
final_font = rand_font()
draw.text((15, 10), rand_txt(), font=final_font, fill=rand_txtcolor())
image.save(rand_name(), 'PNG')#随机存在png文件中 if __name__ == '__main__':
for m in range(20): # 随机生成验证码
# 随机画布
rand_huabu()
rand_yanzhengma()
#image.show()#show验证码</pre>
[gallery ids="51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66" type="rectangular"]
python,验证码生成的更多相关文章
- Python随机生成验证码的两种方法
Python随机生成验证码的方法有很多,今天给大家列举两种,大家也可以在这个基础上进行改造,设计出适合自己的验证码方法方法一:利用range Python随机生成验证码的方法有很多,今天给大家列举两种 ...
- python登录验证码生成及自动化测试规避
在用django写论坛的时候,需要有登录及注册功能. 故就登录界面后端需要生成随机验证码并传值给前端的代码进行编写如下. 验证码生成png需要调用到python的图形库 生成注册码img import ...
- Python教程:随机验证码生成和join 字符串
函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符) ...
- Python 常用模块系列学习(1)--random模块常用function总结--简单应用--验证码生成
random模块--random是一个生成器 首先: import random #导入模块 print (help(random)) #打印random模块帮助信息 常用function ...
- python快速生成注释文档的方法
python快速生成注释文档的方法 今天将告诉大家一个简单平时只要注意的小细节,就可以轻松生成注释文档,也可以检查我们写的类方法引用名称是否重复有问题等.一看别人专业的大牛们写的文档多牛多羡慕,不用担 ...
- Python验证码6位自动生成器
Python验证码6位自动生成器
- 开发工具类API调用的代码示例合集:六位图片验证码生成、四位图片验证码生成、简单验证码识别等
以下示例代码适用于 www.apishop.net 网站下的API,使用本文提及的接口调用代码示例前,您需要先申请相应的API服务. 六位图片验证码生成:包括纯数字.小写字母.大写字母.大小写混合.数 ...
- Flask实战第40天:图片验证码生成技术
图片验证码生成 安装pillow pip install pillow 在utils下新建python package命名为captcha 把需要需要用到的字体放在captcha下 编辑captcha ...
- python 验证码 高阶验证
python 验证码 高阶验证 标签: 验证码python 2016-08-19 15:07 1267人阅读 评论(1) 收藏 举报 分类: 其他(33) 目录(?)[+] 字符型图片验证 ...
- 随机验证码生成和join 字符串
函数:string.join() Python中有join()和os.path.join()两个函数,具体作用如下: join(): 连接字符串数组.将字符串.元组.列表中的元素以指定的字符(分隔符) ...
随机推荐
- IIS7.5修改asp的文件上传限制方法
第一.IIS7.5修改asp的文件上传限制方法 1.打开IIS 2.打开面板中的应用程序开发 asp 3.找到最后的限制属性 4.修改其中的最大请求实体主体限制的值:默认为200000字节,等于195 ...
- 2017年4月13日用VS写C程序遇到的一些问题
在网上找到一篇展示计算机浮点数格式的文章,且有C代码如下: #include <stdio.h> #include <stdlib.h> #include <string ...
- weblogic中部署项目通常有三种方式
在weblogic中部署项目通常有三种方式:第一,在控制台中安装部署:第二,将部署包放在domain域中autodeploy目录下部署:第三,使用域中配置文件config.xml 进行项目的部署. 控 ...
- shiro三连斩之第三斩,整合 springboot
shiro爱springboot中使用 ,还有thymeleaf前端框架.主要是如何配置 pom.xml配置依赖 <?xml version="1.0" encoding=& ...
- 对弈的C++学习笔记
2018-07-11上传 一:从C到C++ 1.C++新类型 bool 判断真假 占用一个字节 if(条件) 真1或者假 0 bool 类型的取值 true false ...
- C++ Coroutine简明教程
在C++里,一个函数如果其函数体实现中包含co_await.co_yield.co_return中任何一个关键字,那么这个函数就是一个coroutine.其中: co_await:挂起当前的corou ...
- TCP聊天工具的实现
由于本人天生愚钝,所以关于聊天工具的编程一直都没学会,尽管网上教程一大堆,但是关于IdTCPClient IdTCPServer 的不多,今天终于学会一些,分享给像我一样纠结的小伙伴,下一步学习多线 ...
- git pull提交代码遇到的问题
git pull 提示如下错误 解决方法: git pull 后面加上分支具体地址 比如:git pull origin daily/1.0.0 同样git push origin daily/1. ...
- Rewrite json
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...
- python复习购物车程序
个人学习总结: 无他,唯手熟尔!多敲多练才是王道 python 第三课 元组的灵活运用&字符串的诸多操作 Program01 '''时间 2018年2月12日12:15:28目的 购物车程序 ...