PIL 产生随机验证码代码实现
来源:互联网 发布:硬盘磁头坏了恢复数据 编辑:程序博客网 时间:2024/05/21 17:21
后端实现
from io import BytesIOfrom PIL import Image, ImageDraw, ImageFontdef random_color(): """ 随机获取颜色 :return: """ return random.randint(0, 255), random.randint(10, 255), random.randint(64, 255)def get_captcha(request): """ 获取图片验证码 :param request: :return: """ width = 150 height = 40 # 画布 image = Image.new('RGB', size=(width, height), color=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255))) # 画笔 draw = ImageDraw.Draw(image, 'RGB') # 字体 font = ImageFont.truetype(r'C:\Windows\Fonts\Arial.ttf', 28) for i in range(10): 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=random_color()) for i in range(5): a = str(random.randint(0, 9)) b = chr(random.randint(97, 122)) c = chr(random.randint(65, 90)) captcha = random.choice([a, b, c]) # 生成验证码文字 draw.text(xy=(25 + i * 20, 5), text=captcha, font=font, fill=(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255),)) for i in range(50): # 生成干扰点 draw.point([random.randint(0, width), random.randint(0, height)], fill=random_color()) f = BytesIO() image.save(f, 'png') data = f.getvalue() return HttpResponse(data)
前端代码
<div class="col-sm-4 has-error"> <img src="/blog/get_captcha/" alt=""></div>
效果图
阅读全文
1 0
- PIL 产生随机验证码代码实现
- C#产生随机验证码的代码
- 随机产生验证码 简洁代码块
- Java实现产生一个随机验证码
- 产生随机验证码
- 产生随机验证码
- 随机产生验证码
- 随机产生验证码
- 随机产生验证码
- JSP产生随机验证码
- 产生随机的验证码
- 产生随机验证码(控制台)
- 自定义随机产生验证码
- 验证码的随机产生
- 产生随机验证图片代码来自CNBlogsDottext10Beta2
- 产生随机图片验证的jsp代码
- 重写IHttpHandler接口实现产生随机验证码图片
- 图片随机验证码代码实现
- Longest Palindromic Substring(动态规划求解)
- ubuntu14.04+cuda8.0 重新安装cuda
- 关键字static、Const、Volatile的作用是什么
- 工具类App原型制作分享-Pocket Fuel
- C++primer 薄片化系列之标准库特殊实施
- PIL 产生随机验证码代码实现
- android native和h5混合开发demo
- android 优秀控件使用
- 简单通用的验证器
- JAVASCRIPT js文件获取 url请求数据方法
- beecloud支付后端java
- koa+mongodb+pm2部署
- java类中变量访问情况
- Cloud Control 12c 的Agant安装