Python 生成4位验证码图片

import randomimport stringfrom 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)
时间: 2024-11-09 02:45:20

Python 生成4位验证码图片的相关文章

学习笔记:利用GDI+生成简单的验证码图片

小分享:我有几张阿里云优惠券,用券购买或者升级阿里云相应产品最多可以优惠五折!领券地址:https://promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode=ohmepe03 学习笔记:利用GDI+生成简单的验证码图片 1 /// <summary> 2 /// 单击图片时切换图片 3 /// </summary> 4 /// <param name="sender">&

js随机生成4位验证码

方法一: /*随机生成4位验证码*/ /*step1:将所有字母,数字装入一个数组备用*/ var codes=[]; //数字:48-57;unicode编码 for(var i=48;i<57;codes.push(i),i++); /*console.log(codes);*/ //大写字母:65-90;unicode编码 for(var i=60;i<90;codes.push(i),i++); //小写字母:97-122;unicode编码 for(var i=97;i<122

Python生成8位随机密码

#!/usr/bin/env python # -*- coding: utf-8 -*- import random import string #第一种方法 seed = "[email protected]#$%^&*()_+=-" sa = [] for i in range(8): sa.append(random.choice(seed)) salt = ''.join(sa) print salt #第二种方法 salt = ''.join(random.samp

Python随机数random模块学习,并实现生成6位验证码

一.前言 学习python随机数random模块的使用 ,并使用模块中的函数,实现6位验证码生成 二.random模块 1.random.random() 返回0-1直接的随机数,类型为float >>>print(random.random()) 0.1259184691662908 2.random.randint(1, 8) 返回1-8直接的随机数,包括8 >>>print(random.randint(1, 8)) 3 3.random.choice() 从一个

随机生成4位验证码,由用户输入并验证是否输入正确,如果输入错误就生成新的验证码让用户重新输入,最多输入5次

1 //四位随机验证码 2 Random ran=new Random(); 3 String str1 = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXUZ"; 4 char [] a=new char[4]; 5 for(int i=0;i<4;i++) 6 { 7 a[i]=str1.charAt(ran.nextInt(62)); 8 } 9 10 StringBuilder rzm1= new

生成的随机验证码图片放入input text中

css:  56px是图片的width,57px(图片长度+input的border) #img{  position:absolute; width:56px;margin-left: calc(100% - -57px); bottom:0} html:javascript:GetCodes()是刷新验证码的方法 <div class="field"> <input type="text" id="Verfication"

time-based基于google key生成6位验证码(google authenticator)

由于公司服务器启用了双因子认证,登录时需要再次输入谷歌身份验证器生成的验证码.而生成验证码是基于一套固定的算法的,以当前时间为基础,基于每个人的google key去生成一个6位的验证码 以下为python3实现 import hmac import base64 import struct import hashlib import time def cal_google_code(secret_key): duration_input = int(time.time())//30 key =

随机生成4位验证码,输入验证码与生成的比较,最多输入5次

package com.hanqi.lianxi;import java.util.Random;import java.util.Scanner;public class yanzhengma{ public static void main(String[] args) { String str ="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIGKLMNOPQRSTUVWXYZ"; char[] array = new char[4];

Python生成8位随机字符串的一些方法

#第一种方法 import random import string seed = "[email protected]#$%^&*()_+=-" sa = [] for i in range(8): sa.append(random.choice(seed)) salt = ''.join(sa) print salt #第二种方法 import random import string salt = ''.join(random.sample(string.ascii_le