Python使用PIL模块生成随机验证码
PIL模块的安装
pip3 install pillow
生成随机验证码图片
import random
from PIL import Image, ImageDraw, ImageFont
from io import BytesIO
def random_str():
'''
生成随机字符
:return:随机字符
'''
random_int = str(random.randint(0,9))
random_up = chr(random.randint(65,90))
random_down = chr(random.randint(97,122))
retu_str = random.choice([random_int,random_up,random_down])
return retu_str
def rndColor():
'''
生成随机颜色
:return: 随机rbg颜色
'''
return (random.randint(0, 255), random.randint(10, 255), random.randint(64, 255))
def get_verify_code_img(filename):
'''
生成随机验证码图片,保存到内存,通过HttpResponse发送到前端
:param request: 生成session
:return: 内存中的图片
'''
# 创建图片与画笔
img = Image.new(mode='RGB',size=(186,34),color=rndColor())
draw = ImageDraw.Draw(img)
verify = ''
# 字体样式
font = ImageFont.truetype(font='font1.ttf',size=20)
#生成六位数验证码
for i in range(6):
char = random_str()
verify += char
draw.text([i*20+50,5],char,font=font,fill=rndColor())
f = open(filename','wb')
img.save(f,'png')
还可以给图片验证码添加燥点与燥线
将下面代码添加到get_verify_code_img中
# width=270
# height=40
# for i in range(10):
# x1=random.randint(0,width)
# x2=random.randint(0,width)
# y1=random.randint(0,height)
# y2=random.randint(0,height)
# draw.line((x1,y1,x2,y2),fill=get_random_color())
#
# for i in range(100):
# draw.point([random.randint(0, width), random.randint(0, height)], fill=get_random_color())
# x = random.randint(0, width)
# y = random.randint(0, height)
# draw.arc((x, y, x + 4, y + 4), 0, 90, fill=get_random_color())
调用
get_verify_code_img('验证码.png')
Python使用PIL模块生成随机验证码的更多相关文章
- python之使用PIL模块制作随机验证码
制作随机验证码,需要如下知识点: 1.随机验证码的制作(这里用的是random模块随机产生字符) 2.图片的制作 3.随机直线干扰项 4.其他随机干扰项 代码如下: from PIL import I ...
- Python 生成随机验证码
Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fro ...
- Python生成随机验证码
Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1.创建图片 from PIL import Image img = Image.new(m ...
- Django中生成随机验证码(pillow模块的使用)
Django中生成随机验证码 1.html中a标签的设置 <img src="/get_validcode_img/" alt=""> 2.view ...
- pillow实例 | 生成随机验证码
1 PIL(Python Image Library) PIL是Python进行基本图片处理的package,囊括了诸如图片的剪裁.缩放.写入文字等功能.现在,我便以生成随机验证码为例,讲述PIL的基 ...
- Python中random模块生成随机数详解
Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...
- 使用Python的PIL模块来进行图片对比
使用Python的PIL模块来进行图片对比 在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, ...
- Java生成随机验证码
package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- C#生成随机验证码例子
C#生成随机验证码例子: 前端: <tr> <td width=" align="center" valign="top"> ...
随机推荐
- 2015-09-21 css学习1
3.设置背景图片 Background-image:url(相对路径) ----123.jpg 图片拉伸铺满: background-size:cover 铺满方向: background-repea ...
- redis 缓存策略
redis 缓存策略配置项:maxmemory <bytes>maxmemory-policy noeviction 触发时机:每次执行命令(processCommand)的时候会检测 w ...
- Tomcat修改用户名密码教程
Tomcat安装教程见http://www.cnblogs.com/lsdb/p/6497964.html 启动tomcat后访问http://127.0.0.1/:8080,出现界面如下其右上角有三 ...
- java 常用命令
#查看堆使用情况jmap -heap [pid]#查看占用内存高的对象jmap -histo:live [pid] | head -n 100#查看占用内存高的对象,dump成文件,线下分析jmap ...
- 使用AndroidStudio导入github项目
1.在studio中配置github的项目地址 2.当你点击github,会这个样子 3.此处放你要clone的地址 ,然后点击clone. 4.等一会会出现这个页面,然后点击yes ,会出现这个页面 ...
- win10系统office2010每次打开总是出现配置进度
- swap分区不足ubuntu休眠
安装uswsusp Ubuntu gnu/linux只需 代码: sudo aptitude install uswsusp Arch gnu/linux系统 代码: sudo pacman -S u ...
- php微信公众号开发
简单的事例总结: wamp下载安装:https://sourceforge.net/projects/wampserver/ www目录里创建php文件weixin.php <?php head ...
- unity中制作模拟第一人称视角下的指南针
private int zRotation; public GameObject obj; public void Update() { //obj = GameObject.Find("C ...
- xilinx 高速收发器Serdes深入研究-Comma码(转)
一.为什么要用Serdes 传统的源同步传输,时钟和数据分离.在速率比较低时(<1000M),没有问题. 在速率越来越高时,这样会有问题 由于传输线的时延不一致和抖动存在,接收端不能正确的采样数 ...