pillow模块 (PIL) 生成验证码
验证码源码:
def v_code(request):from PIL import Image, ImageDraw, ImageFontimport random# 定义一个生成随机颜色的函数def get_color():return random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)# 生成一个图片对象img_obj = Image.new("RGB",(250, 35),color=get_color())# 在图片中加文字# 生成一个画笔对象draw_obj = ImageDraw.Draw(img_obj)# 加载字体文字font_obj = ImageFont.truetype("static/font/kumo.ttf", size=28)# for 循环5次,每次写一个随机字符tmp_list = []for i in range(5):n = str(random.randint(0, 9)) # 生成一个随机数字l = chr(random.randint(97, 122)) # 生成一个随机小写字母u = chr(random.randint(65, 90)) # 生成一个随机大写字母r = random.choice([n, l, u]) # 随机选取tmp_list.append(r) # 存入列表 为下面加入session做准备 draw_obj.text((i * 48 + 20, 0), # 位置r, # 内容get_color(), # 颜色font=font_obj # 字体 )# 拿到随机验证码 拼接成字符串 存入sessionv_code_str = "".join(tmp_list)request.session["v_code"] = v_code_str.upper()# 加干扰线# width = 250 # 图片宽度(防止越界)# height = 35# for i in range(2):# x1 = random.randint(0, width)# x2 = random.randint(0, width)# y1 = random.randint(0, height)# y2 = random.randint(0, height)# draw_obj.line((x1, y1, x2, y2), fill=get_color())# # # 加干扰点# for i in range(2):# draw_obj.point([random.randint(0, width), random.randint(0, height)], fill=get_color())# x = random.randint(0, width)# y = random.randint(0, height)# draw_obj.arc((x, y, x+4, y+4), 0, 90, fill=get_color())# 第一版: 将生成的图片保存到文件中# with open("xx.png", "wb") as f:# img_obj.save(f, "png")# print("图片已经生成!")# with open("xx.png", "rb") as f:# return HttpResponse(data, content_type="image/png")# 第二版 直接将图片保存在内存中from io import BytesIOtmp = BytesIO() # 生成一个io 对象img_obj.save(tmp, "png")data = tmp.getvalue()return HttpResponse(data, content_type="image/png")
View Code
转载于:https://www.cnblogs.com/yangwei666/p/9283975.html
pillow模块 (PIL) 生成验证码相关推荐
- 成功解决pillow模块内生成的非UTF-8格式(比如label中有汉字时)
成功解决pillow模块内生成的非UTF-8格式(比如label中有汉字时) 目录 解决问题 解决方法 解决问题 解决pillow模块内生成的非UTF-8格式(比如label中有汉字时),需要进行格式 ...
- python验证码,python将PIL生成的图片进行base64编码并返回给前端浏览器
我用python的PIL生成了验证码图片,需要将图片返回给前端浏览器,有两种返回方式.一种是返回response,另一种是将图片进行base64编码后返回. 注意:PIL生成验证码图片时,需要传入fo ...
- python怎么卸载pillow_Python3安装Pillow与PIL的方法
Python3安装Pillow与PIL的方法 关于Pillow与PIL PIL(Python Imaging Library)是Python一个强大方便的图像处理库,名气也比较大.不过只支持到Pyth ...
- Django 生成验证码或二维码 pillow模块
一.安装PIL PIL:Python Imaging Library,已经是Python平台事实上的图像处理标准库了.PIL功能非常强大,API也非常简单易用. PIL模块只支持到Python 2 ...
- python 基于pillow模块生成随机图片验证码教程
效果图 我们先来看一下大致的效果图. 以上图形都是用非常基础的元素随机构成的:点,线,曲线,文本.而pillow模块远远不止这些功能,如果学好了它,真的就是你想怎么花就怎么花. 那么现在我们就去学习一 ...
- Python图片处理PIL/pillow/生成验证码/出现KeyError: 和The _imagingft C module is not installed...
近期在用Python开发自己的博客.须要用到Python生成验证码,当然肯定要用到Python的图形处理库PIL,由于我用的是windows. 所以在安装好pil之后就開始写,就依照题目所说出现了Th ...
- PIL应用之生成验证码图片
PIL应用之生成验证码图片 - 残阳似血的博客 PIL应用之生成验证码图片 位于分类 我爱Python 现在的网页中,为了防止机器人提交表单,图片验证码是很常见的应对手段之一.这里就不详细介绍了,相信 ...
- pil库修改图片大小_Gvcode库:一个更简单的、华人开源的、自动生成验证码的python库...
1 说明: ===== 1.1 gvcode全称:graphic-verification-code. 1.2 基本介绍,一秒搞懂. 1.3 并对源码进行修改一个小bug,教您如何修改源码,解决bug ...
- Python图片处理模块PIL(pillow)
Python图片处理模块PIL(pillow) 本篇包含:一.Image类的属性:1.Format 2.Mode 3.Size 4.Palette 5.Info ...
最新文章
- 新冠图像数据分析论文集合(附链接)
- 解决安装完ubuntu登陆无root账户问题
- Py之playsound:playsound的简介、安装、使用方法之详细攻略
- 奇怪吸引子---LuChen
- c语言程序设计第二版李学刚,C语言程序设计(第2版)李学刚教学资源教学课件2-7 动态变量.pptx...
- 【iVX 初级工程师培训教程 10篇文拿证】04 画布及我和 iVX 合照
- matlab功能块,Matlab GUI重用功能块
- How do you simple use git repository
- mysql高频面试题合集
- iOS开发app打包
- 手机信号强度大小的意义
- python爬京东延迟加载_python大规模爬取京东
- 中美跨境电商贸易投资云洽会成功举办;TT Shop和TTforBusiness将互通;PhonePe月破20亿...|洞悉跨境
- 权限管理需要哪几张表
- 机器学习-常用回归算法归纳(全网之最)
- 把 14 亿人都拉到一个微信群,在技术上能实现吗?
- [体感游戏]关于体感游戏的一些思考(七) --- “我是泰山,你是简?”
- 电路模型和电路定律(Ⅲ)
- 并口st7789v2_3.2寸240*320,ST7789V,8080 8//16位MCU并口3/4SPI+16/18 bit RGB ,全彩液晶显示模块...
- linux系统--文件目录