python制作验证码

python使用pillow模块制作验证码

安装pillow模块

python2
输入命令
pip install pillow
python3
有一个相似的模块叫Pillow
pycharm->settings->搜索框:搜索到PIL

导入模块

from PIL import Image

代码

from PIL import Image,ImageDraw,ImageFont
import random
import string

WIDTH = 220  #验证码图片宽度
HEIGHT = 40  #验证码图片长度
RANDOM_WORLD_NUMBER = 5   #随机字母数
POINT_NUMBER = 100        #噪点数
LINE_NUMBER = 5           #噪点直线数
def get_random_color():
    return (random.randint(0,255),random.randint(0,255),random.randint(0,255))



def get_validCode_img():
    img = Image.new("RGB",(WIDTH,HEIGHT),color=get_random_color())
    myfont = ImageFont.truetype(font="123.ttf",size=30)
    draw = ImageDraw.Draw(img)

    #生成验证码中的随机字母
    for i in range(RANDOM_WORLD_NUMBER):
        alphant = random.choice(string.digits+string.ascii_letters)
        distance_x = random.randint(40*i,40*i+20)  #[0,10]
        distance_y = random.randint(0,10)
        draw.text((distance_x,distance_y),alphant,get_random_color(),font=myfont)

    #生成验证码中的噪点
    for i in range(POINT_NUMBER):
        draw.point([random.randint(0,WIDTH),random.randint(0,HEIGHT)],fill=get_random_color())#fill为颜色
        x = random.randint(0,WIDTH)
        y = random.randint(0,WIDTH)
        draw.arc((x,y,x+4,y+4),0,90,fill=random.randint(0,10))  #fill为弧长

    #生成验证码中的直线
    for i in range(LINE_NUMBER):
        x1  = random.randint(0,WIDTH)
        x2  = random.randint(0,WIDTH)
        y1  = random.randint(0,HEIGHT)
        y2  = random.randint(0,HEIGHT)
        draw.line((x1,y1,x2,y2),fill=get_random_color())

    with open("validCode.png","wb") as f:
        img.save(f,"png")

get_validCode_img()

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值