Python 生成随机验证码
Python生成随机验证码
安装:
|
1
|
pip3 install pillow |
基本使用
1. 创建图片
|
1
2
3
4
5
6
7
8
9
|
from PIL import Imageimg = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))# 在图片查看器中打开# img.show() # 保存在本地with open('code.png','wb') as f: img.save(f,format='png') |
2. 创建画笔,用于在图片上画任意内容
|
1
2
|
img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))draw = ImageDraw.Draw(img, mode='RGB') |
3. 画点
|
1
2
3
4
5
6
|
img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))draw = ImageDraw.Draw(img, mode='RGB')# 第一个参数:表示坐标# 第二个参数:表示颜色draw.point([100, 100], fill="red")draw.point([300, 300], fill=(255, 255, 255)) |
4. 画线
|
1
2
3
4
5
6
|
img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))draw = ImageDraw.Draw(img, mode='RGB')# 第一个参数:表示起始坐标和结束坐标# 第二个参数:表示颜色draw.line((100,100,100,300), fill='red')draw.line((100,100,300,100), fill=(255, 255, 255)) |
5. 画圆
|
1
2
3
4
5
6
7
|
img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))draw = ImageDraw.Draw(img, mode='RGB')# 第一个参数:表示起始坐标和结束坐标(圆要画在其中间)# 第二个参数:表示开始角度# 第三个参数:表示结束角度# 第四个参数:表示颜色draw.arc((100,100,300,300),0,90,fill="red") |
6. 写文本
|
1
2
3
4
5
6
|
img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))draw = ImageDraw.Draw(img, mode='RGB')# 第一个参数:表示起始坐标# 第二个参数:表示写入内容# 第三个参数:表示颜色draw.text([0,0],'python',"red") |
7. 特殊字体文字
|
1
2
3
4
5
6
7
8
9
10
|
img = Image.new(mode='RGB', size=(120, 30), color=(255, 255, 255))draw = ImageDraw.Draw(img, mode='RGB')# 第一个参数:表示字体文件路径# 第二个参数:表示字体大小font = ImageFont.truetype("kumo.ttf", 28)# 第一个参数:表示起始坐标# 第二个参数:表示写入内容# 第三个参数:表示颜色# 第四个参数:表示颜色draw.text([0, 0], 'python', "red", font=font) |
图片验证码
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
import randomdef check_code(width=120, height=30, char_length=5, font_file='kumo.ttf', font_size=28): code = [] img = Image.new(mode='RGB', size=(width, height), color=(255, 255, 255)) draw = ImageDraw.Draw(img, mode='RGB') def rndChar(): """ 生成随机字母 :return: """ return chr(random.randint(65, 90)) def rndColor(): """ 生成随机颜色 :return: """ return (random.randint(0, 255), random.randint(10, 255), random.randint(64, 255)) # 写文字 font = ImageFont.truetype(font_file, font_size) for i in range(char_length): char = rndChar() code.append(char) h = random.randint(0, 4) draw.text([i * width / char_length, h], char, font=font, fill=rndColor()) # 写干扰点 for i in range(40): draw.point([random.randint(0, width), random.randint(0, height)], fill=rndColor()) # 写干扰圆圈 for i in range(40): draw.point([random.randint(0, width), random.randint(0, height)], fill=rndColor()) x = random.randint(0, width) y = random.randint(0, height) draw.arc((x, y, x + 4, y + 4), 0, 90, fill=rndColor()) # 画干扰线 for i in range(5): x1 = random.randint(0, width) y1 = random.randint(0, height) x2 = random.randint(0, width) y2 = random.randint(0, height) draw.line((x1, y1, x2, y2), fill=rndColor()) img = img.filter(ImageFilter.EDGE_ENHANCE_MORE) return img,''.join(code)if __name__ == '__main__': # 1. 直接打开 # img,code = check_code() # img.show() # 2. 写入文件 # img,code = check_code() # with open('code.png','wb') as f: # img.save(f,format='png') # 3. 写入内存(Python3) # from io import BytesIO # stream = BytesIO() # img.save(stream, 'png') # stream.getvalue() # 4. 写入内存(Python2) # import StringIO # stream = StringIO.StringIO() # img.save(stream, 'png') # stream.getvalue() pass |
Python 生成随机验证码的更多相关文章
- Python生成随机验证码
Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1.创建图片 from PIL import Image img = Image.new(m ...
- Python生成随机验证码,大乐透号码
实例笔记之生成随机号码 扩展知识 - yield(生成器) 随机生成验证码 示例代码: import random # 导入标准模块中的random if __name__ == '__main__' ...
- Python - 生成随机验证码的3种实现方式
生成6位随机验证码的3种实现方式如下: 1. 简单粗暴型:所有数字和字母都放入字符串: 2. 利用ascii编码的规律,遍历获取字符串和数字的字符串格式: 3. 引用string库. 方法1代码: i ...
- Python使用PIL模块生成随机验证码
PIL模块的安装 pip3 install pillow 生成随机验证码图片 import random from PIL import Image, ImageDraw, ImageFont fro ...
- python生成随机图形验证码
使用python生成随机图片验证码,需要使用pillow模块 1.安装pillow模块 pip install pillow 2.pillow模块的基本使用 1.创建图片 from PIL impor ...
- pillow实例 | 生成随机验证码
1 PIL(Python Image Library) PIL是Python进行基本图片处理的package,囊括了诸如图片的剪裁.缩放.写入文字等功能.现在,我便以生成随机验证码为例,讲述PIL的基 ...
- Java生成随机验证码
package com.tg.snail.core.util; import java.awt.Color; import java.awt.Font; import java.awt.Graphic ...
- python生成随机日期字符串
python生成随机日期字符串 生成随机的日期字符串,用于插入数据库. 通过时间元组设定一个时间段,开始和结尾时间转换成时间戳. 时间戳中随机取一个,再生成时间元组,再把时间元组格式化输出为字符串 # ...
- Python生成随机字符串
利用Python生成随机域名等随机字符串. #!/usr/bin/env python# -*- coding: utf-8 -*- from random import randrange, cho ...
随机推荐
- Python 中的继承、多态和封装
涉及问题: Python 中如何实现多继承,会有什么问题? Python 中的多态与静态方法有什么区别? 答案要点如下: Python 中的继承,就是在定义类时,在括号中声明父类,简单示例如下: cl ...
- FNV算法实战
HASH算法介绍 Hash,一般翻译做"散列",也有直接音译为"哈希"的,就是把任意长度的输入(又叫做预映射, pre-image),通过散列算法,变换成固定长 ...
- 二叉树遍历等基本操作(Java实现)
前中后序遍历递归实现+层序遍历: 树的结点类代码: public class TreeNode<Value extends Comparable<? super Value>> ...
- 01-Python的介绍_Python编程之路
首先用一句业内非常出名的话来介绍Python "人生哭短,我用Python" 这也是Python宣传时经常说的一句话 从这句话中,可以非常清楚Python他到底优点在哪里,为什么要 ...
- 前端的UI设计与交互之布局篇
布局是页面构成的前提,是后续展开交互和视觉设计的基础.设计者在选择布局之前,需要注意以下几点原则:明确用户在此场景中完成的主要任务和需获取的决策信息.明确决策信息和操作的优先级及内容特点,选择合理布局 ...
- Spring Boot应用的后台运行配置
酱油一篇,整理一下关于Spring Boot后台运行的一些配置方式.在介绍后台运行配置之前,我们先回顾一下Spring Boot应用的几种运行方式: 运行Spring Boot的应用主类 使用Mave ...
- Tomact高并发&Servlet线程处理
Servlet/JSP技术和ASP.PHP等相比,由于其多线程运行而具有很高的执行效率.由于Servlet/JSP默认是以多线程模式执行的,所以,在编写代码时需要非常细致地考虑多线程的安全性问题.然而 ...
- 新事物学习---WebApp移动端手势Hammer
花落水流红,闲愁万种,无语怨东风. Hammer介绍 Hammer库是一个移动端手势库,移动端的手势操作(比如touch,tap,拖动,滑动等等)都可以用这个库,而我们不用关心,它的底层方案具体是怎么 ...
- 第五次作业-需求&原型改进
需求&原型改进 0. 团队介绍 团队名称:121ComeOn 项目名称:个人博客项目 团队组成: PM:黄金筱(107) 成员:王枫(031),刘烨(255),周明浩(277) github地 ...
- 需求分析&原型改进
需求&原型改进 一.给目标用户展现原型,与目标用户进一步沟通理解需求. 1.用户痛点:需要随时随地练习四则运算,并能看到用户的统计数据. 2.用户反馈:较好地解决练习需求,若能加入班级概念则更 ...