Python3实现生成验证码图片
import random
from PIL import Image, ImageFont, ImageDraw
from io import BytesIO
from ttt import settings
import os
import base64
PATH = os.path.join(settings.D_APP_ROOT, 'apps/membership/static/noisy.ttf') # 字体
LEN_VERIFY = 4
def get_verify():
verify_len = LEN_VERIFY
weight = 108
hight = 41
# 大写字母,小写字母,数字
txt_list = [48, 49, 50, 51, 52, 53, 54, 55, 56, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
81,
82, 83, 84, 85, 86, 87, 88, 89, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122]
image = Image.new('RGBA', (weight, hight), (255, 255, 255))
font = ImageFont.truetype(PATH, 20)
draw = ImageDraw.Draw(image)
# 填充背景
for x in range(weight):
for y in range(hight):
draw.point((x, y), fill=(200, 200, 200))
# 生成随机验证码
verify = ''
for t in range(verify_len):
text = chr(txt_list[random.randint(0, len(txt_list) - 1)])
verify += text
draw.text(((weight // verify_len) * t + 7, 10), text, font=font,
fill=(random.randint(32, 127), random.randint(32, 127), random.randint(32, 127)))
img_buffer = BytesIO()
image.save(img_buffer, 'PNG')
base = base64.b64encode(img_buffer.getvalue())
return base, verify
# django中返回方式
return HttpResponse(image, content_type='image/png')
Python3实现生成验证码图片的更多相关文章
- java web学习总结(九) -------------------通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- JavaWeb---总结(九)通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下: 创建一个DrawImage Servlet,用来生成验证码图片 1 package gacl. ...
- Java 生成验证码图片
生成验证码图片并对提交的输入进行验证 // HttpServletResponse常见应用——生成验证码 // 利用BufferedImage类生产随机图片 public static final i ...
- javaweb学习总结(九)—— 通过Servlet生成验证码图片
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- 012. asp.net生成验证码图片(汉字示例/字母+数字)
protected void Page_Load(object sender, EventArgs e) { //生成验证码图片的基本步骤 string checkCode = "新年快乐& ...
- J2EE如何生成验证码图片和点击刷新验证码
验证码图片生成步骤 创建BufferedImage对象. 获取BufferedImage的画笔,即调用getGraphics()方法获取Graphics对象. 调用Graphics对象的setColo ...
- java web 学习九(通过servlet生成验证码图片)
一.BufferedImage类介绍 生成验证码图片主要用到了一个BufferedImage类,如下:
- java web,生成验证码图片的技术
偶然知道原来有些网站的验证码图片都是随机生成的,后来听人讲了一下,就做了这个小例子 生成图片,绘制背景,数字,干扰线用到了java.awt包,主要使用BufferedImage来生成图片,然后使用Gr ...
- php生成验证码图片
0:效果图 1:index.php用来生成验证码图片 <?php session_start(); header ('Content-Type: image/png'); $image=imag ...
随机推荐
- mybatis if标签判断字符串相等
mybatis 映射文件中,if标签判断字符串相等,两种方式: 因为mybatis映射文件,是使用的ognl表达式,所以在判断字符串sex变量是否是字符串Y的时候, <if test=" ...
- 非图片格式如何转成lmdb格式--caffe
链接 LMDB is the database of choice when using Caffe with large datasets. This is a tutorial of how to ...
- SignalR 前期简单配置
一.随便你在哪个命名空间下新建一个Startup类,并在在该类中注册SignalR. using Owin; using System; using System.Collections.Generi ...
- :单件模式:Singleton
#ifndef __SINGLETON_H__ #define __SINGLETON_H__ class Singleton { private: static Singleton* instanc ...
- :策略模式--Duck
原则:封装变化的部分:针对超类编程,不针对实现:多组合少继承: #ifndef __DUCK_H__ #define __DUCK_H__ #include "FlyBehavior.h&q ...
- Java垃圾回收理解
gc是垃圾回收,Java的垃圾回收分为年轻代回收和老年代回收,其中年轻代回收速度快,频率高,因为Java对象大多具有朝生夕灭的特性,Java对象都是new出来的,当new出很多对象的时候,年轻代很容易 ...
- Ubuntu16.04 安装Tensorflow-CPU
最近我开始学习深度学习框架Tensorflow,一开始在windows平台下的anaconda下安装,由于anaconda安装几次后navigator打开老是出现闪退的问题,所以决定换个ubuntu下 ...
- codeforce949A(顺带vector详细使用介绍)
A. Zebras time limit per test1 second memory limit per test512 megabytes inputstandard input outputs ...
- html页面中的title设置为空格
这样页面加载时,title会显示为空,而不是当前页面的URL. document.title='\u200E'
- 2.11 alert\confirm\prompt
2.11 alert\confirm\prompt 前言 不是所有的弹出框都叫alert,在使用alert方法前,先要识别出到底是不是alert.先认清楚alert长什么样子,下次碰到了,就可以用 ...