1. #一, 创建图片并在图上添加文本
  2. from PIL import Image,ImageDraw,ImageFont
  3. a = '我们不一样' # 定义文本
  4. font = ImageFont.truetype('./font/platech.ttf',24) # 定义字体,这是本地自己下载的
  5. img = Image.new('RGB',(300,300),(255,180,0)) # 新建长宽300像素,背景色为(255,180,0)的画布对象
  6. draw = ImageDraw.Draw(img) # 新建画布绘画对象
  7. draw.text( (50,50), a,(255,0,0),font=font) # 在新建的对象 上坐标(50,50)处开始画出红色文本
  8. # 左上角为画布坐标(0,0)点
  9. img.show()
  10. img.save('./logs/img.jpeg')

图片验证码代码实现


  1. # 推导步骤4(最终推导) 在图片上写字
  2. img_obj = Image.new('RGB',(360,35),get_random())
  3. # 将生成好的图片对象交给ImageDraw
  4. img_draw = ImageDraw.Draw(img_obj) # 生成了一个画笔对象
  5. # 字体样式
  6. img_font = ImageFont.truetype('static/font/111.ttf',30)
  7. # 随机验证码 大小写英文加数字 五位 每一位都可以是大写字母或小写字母或数字
  8. code = ''
  9. for i in range(5):
  10. upper_str = chr(random.randint(65,90))
  11. lower_str = chr(random.randint(97,122))
  12. random_int = str(random.randint(0,9))
  13. # 随机选取一个
  14. tmp = random.choice([upper_str,lower_str,random_int])
  15. # 朝图片上写一个
  16. img_draw.text((i*60+60,0),tmp,get_random(),img_font)
  17. # 存储写的字
  18. code += tmp
  19. print(code)
  20. # 这个验证码后面其他视图函数可能要用到 找个地方存储一下 并且这个地方全局的视图函数都能访问
  21. request.session['code'] = code
  22. io_obj = BytesIO()
  23. img_obj.save(io_obj,'png')
  24. return HttpResponse(io_obj.getvalue())

图片验证码推导逻辑,Image.new,ImageDraw, ImageFont.truetype的用法的更多相关文章

  1. Python简单的制作图片验证码

    -人人可以学Python--这里示范的验证码都是简单的,你也可以把字符扭曲 人人可以学Python.png Python第三方库无比强大,PIL 是python的一个d第三方图片处理模块,我们也可以使 ...

  2. Django项目开发,XSS攻击,图片防盗链,图片验证码,kindeditor编辑器

    目录 一.Django项目开发 1. 项目开发流程 2. auth模块的补充 (1)django的admin可视化管理页面 (2)将admin可视化管理页面的模型表显示成中文 (3)auth模块的用户 ...

  3. python随机图片验证码的生成

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

  4. Django之缓存、信号和图片验证码

    一. 缓存 1. 介绍 缓存通俗来说:就是把数据先保存在某个地方,下次再读取的时候不用再去原位置读取,让访问速度更快. 缓存机制图解 2.Django中提供了6种缓存方式 1. 开发调试 2. 内存 ...

  5. django网页图片验证码功能

    在一个正常的登录系统中,验证码是非常重要的,用于识别人机,毕竟我们都知道,这个世界中存在着万恶的爬虫,验证码有很多种方式,有图片的,有邮件的,有短信的,有拼图的,不管什么样的验证码,目的都是验证访问用 ...

  6. 用python做一个图片验证码

    看一下做出来的验证码长啥样 验证码分析 1. 有很多点 2. 有很多线条 3. 有字母,有数字 需要用到的模块: 1. random 2. Pillow  (python3中使用pillow) 安装p ...

  7. 2-功能1:基于用户认证组件和Ajax实现登录验证(图片验证码)

    1.登录页面的设计 (1)label标签的id属性 label标签的id属性,点击label标记,相当于点击了input框 bootstarp样式 class="form-group&quo ...

  8. Python开发【Django】:图片验证码、KindEditor

    图片验证码 生成图片验证码需要以下: session check_code.py(依赖:Pillow,字体文件) 模块安装 pip install Pillow src属性后面加? 在utils下拷贝 ...

  9. python实现图片验证码

    1 验证基础知识1.1 Python生成随机验证码,需要使用PIL模块. # 安装 pip3 install pillow 1.2 创建图片 from PIL import Image img = I ...

随机推荐

  1. Leetcode 25/24 - Reverse Nodes in k-Group

    题目描述 Leetcode 24 题主要考察的链表的反转,而 25 题是 24 的拓展版,加上对递归的考察. 对题目做一下概述: 提供一个链表,给定一个正整数 k, 每 k 个节点一组进行翻转,最后返 ...

  2. kali下安装mobsf

    1.查看kali版本,安装mobsf对kali版本的要求是大于3.0并且是64位 uname -a 2.安装docker,有选择的地方直接回车就好 apt-get install docker doc ...

  3. OpenStack集成ceph

    openstack组件集成ceph OpenStack集成ceph详细过程可以查看ceph官方文档:ceph document OpenStack Queens版本,1台控制节点controller, ...

  4. JavaScript笔记五

    1.条件分支语句 - switch语句 - 语法: switch(条件表达式){ case 表达式: 语句... break; case 表达式: 语句... break; case 表达式: 语句. ...

  5. Mybatis整合spring(适合小白)

    目录 1.整合思路 2.整合需要的jar包 3.整合的步骤 4.Dao的开发的两种实现方式 6.Dao的开发的实现方式总结图 @ Mybatis整合spring其实就是SSM框架中SM的整合集成. 1 ...

  6. 【Java基础】字面量相加的类型转换

    Java字面量的相加类型转换 1.Java 编译期间(javac),凡是字面量和常量的运算,都会先运算出结果 2.运行期当字符串池中有 String"字面量"时,Java 会直接用 ...

  7. day20191001国庆默写

    day20191001国庆默写恢复 重在理解,而不是死记硬背.认真专心看6遍,做6遍. 学会码字,每天码字二小时.持之以恒. 任重道远,出发,走多少算多少.100分的试卷,会做20分也比一个努力也没有 ...

  8. python加载csv数据

    入门机器学习时,一些测试数据是网络上的csv文件.这里总结了两种加载csv文件的方式: 1 通过numpy.urllib2加载 import numpy as np import urllib2 ur ...

  9. java程序员面试宝典之——Java 基础部分(1~10)

    基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法. 1.一个".java"源文件中是否可以包 ...

  10. js如何衔接css3的多个@keyframes动画?

    css3特效动画,我们在编写页面中经常遇到,而且是在同一个div模块上有多个衔接的不同动画,css中,我们经常使用animation-delay (规定在动画开始之前的延迟)进行处理. 那么,下面分享 ...