python生成随机验证码图片+噪声

server/2024/9/25 22:59:07/
python">参数:图片宽高、验证码个数,文字大小
def check_code(width=90, height=30, length=4, font_size=26):code = []from PIL import Image, ImageDrawimg = Image.new(mode='RGB', size=(width, height), color=(255, 255, 255))draw = ImageDraw.Draw(img, mode='RGB')def rndChar():# 定义字符的ASCII码范围ascii_ranges = [(48, 57),  # 数字 0-9(65, 90),  # 大写字母 A-Z(97, 122),  # 小写字母 a-z]# 随机选择一个范围chosen_range = random.choice(ascii_ranges)# 在选定的范围内随机选择一个字符并返回return chr(random.randint(chosen_range[0], chosen_range[1]))def rndColor():# 随机颜色,不用255因为有点浅return (random.randint(0, 200), random.randint(0, 200), random.randint(0, 200))# 绘制字符for i in range(length):char = rndChar()code.append(char)h = random.randint(0, 3)w = i * width / length + random.randint(-2, 5)draw.text(xy=(w, h), text=char, fill=rndColor(), font_size=font_size)# 绘制干扰像素点for _ in range(40):draw.point(xy=(random.randint(0, width), random.randint(0, height)), fill=(255, 255, 255))# 绘制干扰圈for _ in range(30):x = random.randint(0, width)y = random.randint(0, height)draw.arc(xy=(x, y, x + 5, y + 5), start=random.randint(0, 180), end=random.randint(180, 360), fill=rndColor())# 绘制干扰线for i in range(5):x1, y1 = random.randint(0, width), random.randint(0, height)x2, y2 = random.randint(0, width), random.randint(0, height)draw.line(xy=(x1, y1, x2, y2), fill=rndColor())img.save(r'F:\Code\PythonCode\djangoProject\app02\static\img\code.png')return img, ''.join(code)


http://www.ppmy.cn/server/24884.html

相关文章

C++信息学奥赛 数据结构认识

数据结构 1.1数据结构分类 1.2基本数据类型 1.3数字编码 1.4字符编码 1.1数据结构分类 数据结构如同一副稳固而多样的框架。为数据的有序组织提供了蓝图,算法得以在此基础上生动起来。 常用的数据结构包括哪些 , , &…

Unity 数字字符串逗号千分位

使用InputField时处理输入的数字型字符串千分位自动添加逗号,且自动保留两位有效数字 输入:123 输出:123.00 输入:12345 输出:12,345.00 代码非常简单 using UnityEngine; using TMPro;public class …

【MyBatis】进阶使用 (动态SQL)

动态SQL \<if>\<trim>\<where>\<set>\<foreach>\<include> 在填写表单时&#xff0c;有些数据是非必填字段&#xff08;例如性别&#xff0c;年龄等字段&#xff09;&#xff0c;那就需要在接收到参数时判断&#xff0c;根据参数具体的情况…

Docker--compose概述与部署

目录 一、概述 1. Compose简介 1.1 docker compose常用命令 1.2 Compose配置常用字段 2. YAML简介 2.1 YAML支持的数据结构 2.2 YML文件编写注意事项 2.3 Docker Compose文件结构 3. Docker-Compose安装 ​编辑 4.docker Compose撰写nginx 镜像 1. 准备环境 ​编辑…

HaLo-NeRF:利用视觉和语言模型对场景的精准定位和细粒度语义理解

包含大量摄影师拍摄的照片的互联网图像集有望实现对大型旅游地标的数字探索。然而&#xff0c;先前的工作主要集中在几何重建和可视化上&#xff0c;忽略了语言在为导航和细粒度理解提供语义界面方面的关键作用。 项目&#xff1a;HaLo-NeRF: Learning Geometry-Guided Semant…

MongoDB聚合运算符:$size

MongoDB聚合运算符&#xff1a;$size 文章目录 MongoDB聚合运算符&#xff1a;$size语法使用举例 $size聚合运算符返回数组中元素的数量。 语法 { $size: <expression> }<expression>为可解析为数组的表达式。 使用 $size 的参数必须解析为数组。如果 $size 的参…

vue2 点击预览本地 word excle pdf 文件

安装 考虑到三个包加一起的话会比较大&#xff0c;所以拆成了三个包&#xff0c;需要哪个自行安装即可。 //docx文档预览组件 npm install vue-office/docx//excel文档预览组件 npm install vue-office/excel//pdf文档预览组件 npm install vue-office/pdf npm i --save vue…

【2024-4-28-001】我遇到的CMake语句

2024年4月28日&#xff0c;周日下午 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin/${CMAKE_BUILD_TYPE})这段语法是用于设置 CMake 构建过程中生成的可执行文件&#xff08;运行时文件&#xff09;的输出目录。 让我逐步解释它&#xff1a; set: 这是 CMake …