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模块生成随机验证码的更多相关文章

  1. python之使用PIL模块制作随机验证码

    制作随机验证码,需要如下知识点: 1.随机验证码的制作(这里用的是random模块随机产生字符) 2.图片的制作 3.随机直线干扰项 4.其他随机干扰项 代码如下: from PIL import I ...

  2. Python 生成随机验证码

    Python生成随机验证码  Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fro ...

  3. Python生成随机验证码

    Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1.创建图片 from PIL import Image img = Image.new(m ...

  4. Django中生成随机验证码(pillow模块的使用)

    Django中生成随机验证码 1.html中a标签的设置 <img src="/get_validcode_img/" alt=""> 2.view ...

  5. pillow实例 | 生成随机验证码

    1 PIL(Python Image Library) PIL是Python进行基本图片处理的package,囊括了诸如图片的剪裁.缩放.写入文字等功能.现在,我便以生成随机验证码为例,讲述PIL的基 ...

  6. Python中random模块生成随机数详解

    Python中random模块生成随机数详解 本文给大家汇总了一下在Python中random模块中最常用的生成随机数的方法,有需要的小伙伴可以参考下 Python中的random模块用于生成随机数. ...

  7. 使用Python的PIL模块来进行图片对比

    使用Python的PIL模块来进行图片对比 在使用google或者baidu搜图的时候会发现有一个图片颜色选项,感觉非常有意思,有人可能会想这肯定是人为的去划分的,呵呵,有这种可能,但是估计人会累死, ...

  8. Java生成随机验证码

    package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...

  9. C#生成随机验证码例子

    C#生成随机验证码例子: 前端: <tr> <td width=" align="center" valign="top"> ...

随机推荐

  1. npm常用功能

    1.   npm -v在命令行中输入该代码,可以查看npm当前版本号 2.安装依赖包2.1  npm install <name>先使用cd命令跳转到需要安装模块的目录,在该目录下执行np ...

  2. PinkEx专用图标

  3. [转]每天一个linux命令(44):top命令

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法.top是一个动态显示过程,即可以通过用户按键来不断刷新 ...

  4. 未能加载文件或程序集“Oracle.DataAccess”或它的某一个 依赖项。如何解决?

    之前项目做大数据批量添加使用了OracleBulkCopy,这个是引用Oracle.DataAccess.Client的命名空间,所以项目要引用一个Oracle.DataAccess.dll, 但是运 ...

  5. 为什么使用 npm Scripts 构建项目

    http://www.css88.com/archives/7025#more-7025 https://github.com/damonbauer/npm-build-boilerplate 这个我 ...

  6. PC/FORTH定点原理

    body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2p ...

  7. vue-router-7-重定向及别名

    const router = new VueRouter({ mode: 'history', base: __dirname, routes: [ { path: '/', component: H ...

  8. PHP多进程处理并行处理任务实例

    本文目的 本文通过例子讲解linux环境下,使用php进行并发任务处理,以及如何通过pipe用于进程间的数据同步.写得比较简单,作为备忘录. PHP多进程 通过pcntl_XXX系列函数使用多进程功能 ...

  9. AngularJs和Vue比较

    http://jimhoskins.com/2012/12/17/angularjs-and-apply.html

  10. JSP组件Telerik UI for JSP发布R1 2019 SP1|附下载

    Telerik UI for JSP拥有由Kendo UI for jQuery支持的40+ JSP组件,同时通过Kendo UI for jQuery的支持能使用JSP封装包构建现代的HTML5和J ...