import random

import string

from PIL import Image,ImageDraw,ImageFont,ImageFilter

# 字体的位置

font_path = "/Library/Fonts/Arial.ttf"

# 验证码的位数

number = 4

# 生成图片的大小

size = (100,30)

# 图片背景颜色-白色

bgcolor = (255,255,255)

# 验证码字体颜色——蓝色

fontcolor = (0,0,255)

# 干扰线的颜色——红色

linecolor = (255,0,0)

# 是否加入干扰线

draw_line = True

# 图片上干扰线的颜色

line_number = (1,5)

def gene_text():

# 获取26个英文字母

source = list(string.ascii_letters)

for index in range(0, 10):

# 获取10个数字

source.append(str(index))

return ''.join(random.sample(source, number)) # number是生成验证码的位数

#用来绘制干扰线

def gene_line(draw,width,height):

begin = (random.randint(0, width), random.randint(0, height))

end = (random.randint(0, width), random.randint(0, height))

draw.line([begin, end], fill = linecolor)

#生成验证码

def gene_code(k):

# 宽和高

width,height = size

# 创建图片

image = Image.new('RGBA',(width,height),bgcolor)

# 验证码的字体

font = ImageFont.truetype(font_path,25)

# 创建画笔

draw = ImageDraw.Draw(image)

# 生成字符串

text = gene_text()

font_width, font_height = font.getsize(text)

# 填充字符串

draw.text(((width - font_width) / number, (height - font_height) / number),text,\

font= font,fill=fontcolor)

if draw_line:

gene_line(draw,width,height)

# 创建扭曲

image = image.transform((width+20,height+10), Image.AFFINE, (1,-0.3,0,-0.1,1,0),Image.BILINEAR)

# 滤镜,边界加强

image = image.filter(ImageFilter.EDGE_ENHANCE_MORE)

# 保存验证码图片

image.save('%d.png'%k)

if __name__ == "__main__":

# 循环创建验证码图片

for i in range(0,1000):

gene_code(i)

python生成4位验证码_Python 生成4位验证码图片相关推荐

  1. python随机生成验证码_Python生成随机验证码

    #生成随机验证码 from PIL importImagefrom io importBytesIOfrom PIL importImageDraw,ImageFontdefcheck_code(re ...

  2. python合并pdf 加书签_Python生成pdf目录书签的实例方法

    有时候我们用的一些pdf资料是没有目录的,这样找寻我们想到的东西比较麻烦.本篇文章就为大家带来python来生成pdf目录书签的方法. 首先,我们需要下载一个软件FreePic2Pdf,利用它我们可以 ...

  3. python随机生成验证码_Python生成随机验证码的两种方法

    # -*- coding: utf-8 -*- import random def generate_verification_code_v2(): ''' 随机生成6位的验证码 ''' code_l ...

  4. python随机验证码_Python生成随机验证码代码实例解析

    生成6位随机验证码的3种实现方式如下: 1. 简单粗暴型:所有数字和字母都放入字符串: 2. 利用ascii编码的规律,遍历获取字符串和数字的字符串格式: 3. 引用string库. 方法1代码: i ...

  5. python随机生成六位数密码_python生成6位包含数字和字母的密码

    初学python,简单敲了几行生成6位包含数字和字母密码的代码 (我是在python 3上敲的) 首先理清思路: 1.包含数字和字母的六位口令共有36^6个 2.将0-9和a-z合成一个字符串pwd, ...

  6. python日期格式转换成13位时间戳_python生成13位或16位时间戳以及反向解析时间戳的实例...

    我就废话不多说了,直接上代码吧! import datetime import time def get_float_time_stamp(): datetime_now = datetime.dat ...

  7. python有四个数字_Python生成0-9任意4位数字组合的方法

    玩蛇网本文是关于Python生成0-9任意4位数字组合的方法示例.0-9个数字组成任意4位数字,有多少种排列组合的方式,要是用想的需要不少时间而且还容易出错.用python方法来解决这个问题显然简单得 ...

  8. python生成指定位数随机数_python生成指定长度的随机数密码

    复制代码 代码如下: #!/usr/bin/env python # -*- coding:utf-8 -*- #导入random和string模块 import random, string def ...

  9. python随机生成20个数字_python – 生成大量唯一的随机float32数字

    最好的办法是生成随机的32位整数,然后将它们转换为浮点数.在生成数字时,您需要拒绝无穷大和NAN的位表示. 您可以从整数值而不是浮点值生成集合,然后在输出上进行转换.您可以使用位图来检测已使用的整数值 ...

最新文章

  1. TCL中Ports/Pins/Nets/Cells/Clocks之间的交互关系?
  2. Data truncation: Truncated incorrect DOUBLE value 解决方案
  3. 操作系统的安装与启动基本原理
  4. NOSQL的Redis的基础
  5. 复制K2流程图实现记录
  6. Ubuntu 学习系列-安装Flash播放器
  7. Ubuntu与CentOS的区别
  8. 「支持m1」自定义菜单键盘快捷键——CustomShortcuts for mac
  9. android 3d翻转动画 viewpage,利用ViewPager实现3D画廊效果及其图片加载优化
  10. NPM_出现 ETIMEDOUT
  11. 货币的时间价值及股票估值
  12. 【C++ Primer 第五版】序言+前言
  13. 小学计算机画图课件第一册,第一册信息技术课件-第三章 第1课 认识“画图”软件 甘少版(共12张PPT)...
  14. 和量子计算有什么区别 并发_超级计算机和量子计算机有什么区别?
  15. Android进阶之光 读书笔记
  16. 孩子近视了房间里用什么灯?保护视力的护眼灯
  17. 如何理解一台服务器可以绑定多个ip,一个ip可以绑定多个域名
  18. 云产品经理相关技术知识(一)
  19. 用python画宇宙_快来用Python和Blender超简单绘制你的宇宙飞船!
  20. 虚拟资源发布系统源码PHP,虚拟资源商品自动发货系统商城源码

热门文章

  1. $ajax({}).done 和 $ajax({}) success 区别
  2. Django View和URL
  3. 线程池写入mysql_用多线程写入数据库的问题(150分)
  4. 4天搞定Docker和k8s核心架构,稳拿35k不是问题?
  5. Jmeter之测试片段和模块控制器应用
  6. 关于ptype_all和pypte_base中的pt_prev的说明[转]
  7. Java编程设计---数组Arrays
  8. Navicat Premium试用期破解方法(转)
  9. li:nth-child()和 li:nth-of-type()选择器区别
  10. MyEclipse的Debug模式