生成四位二维码

在执行这个代码的时候需要进行安装模块
pip install pillow
from random import randint,choice
from PIL import Image , ImageDraw , ImageFont

# 制作随机验证码:数字,大小写字母
def get_random_code():
    # 随机数字
    number = str(randint(0 , 9))
    # 随机大写字母
    upper = chr(randint(65 , 90))
    # 随机小写字母
    lower = chr(randint(97 , 122))
    # 再生成的大小写字母和数字中再次随机获取一个
    code = choice([number , upper , lower])
    return code

# 获取随机颜色
def get_color():
    return randint(0, 255),randint(0, 255),randint(0, 255)

# 制作图片
def create_image():
    # 创建图片对象
    image = Image.new(mode='RGB' , size=(120 , 30) , color=get_color())
    # 创建画笔工具
    draw = ImageDraw.Draw(image)
    # 设置字体,导入字体问题件,设置字体大小
    font = ImageFont.truetype("font/AdobeFanHeitiStd-Bold.otf" , 24)

    # 制作图片噪点
    # 噪点
    for i in range(100):
        # point([x , y] , 颜色)
        draw.point([randint(0,120) , randint(0,30)] , fill=get_color())

    # 噪线
    for i in range(15):
        # line([起始x , y,终止x, y] , 颜色)
        draw.line([randint(0,120) , randint(0,30) , randint(0,120) , randint(0,30)] , fill=get_color())

    # 噪线:弧线
    x = randint(0, 120)
    y = randint(0, 30)
    for i in range(10):
        # line([起始x , y,终止x, y] ,0 ,90, 颜色)
        draw.arc([x , y , x+1 , y+1], 0 , 90, fill=get_color())

    # 生成验证码
    for i in range(4):
        code = get_random_code()
        # 将获取到的验证码写入到图片中
        draw.text((10+30*i , 2) , text=code , fill=get_color() , font=font)

    # 将图片对象保存为文件
    f = open('yzm.png' , 'wb')
    image.save(f , format='png')
    f.close()

create_image()

这里我的代码设置的宽度是30为一个字母的空间,还有这里是要导入font文件的,放到font文件夹中。

这是文件的目录:

这是效果图: 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值