二维码的生成

写在

起源于今天早上的微信群,甲方的新需求。

之前的二维码生成直接用了网上的接口,返回的是单个二维码图片,不能自定义,也不太安全,刚好借着这次的需求自己写一个二维码的生成和生成后对图片进行修改变成甲方希望的样式。

def make_qrcode(eid: str):
    base = "xxx"
    temp = qrcode.make(base + eid)
    bg_img = Image.open(dirname(dirname(abspath(__file__))) + "/bg.jpg")
    temp.thumbnail((275, 275))
    bg_img.paste(temp, (25, 30))
    draw = ImageDraw(bg_img)
    ft = ImageFont.truetype(dirname(dirname(abspath(__file__))) + "/arialuni.ttf", 40)
    draw.text((330, 260), eid, 'white', font=ft)
    output_buffer = BytesIO()
    bg_img.save(output_buffer, format='png')
    byte_data = output_buffer.getvalue()
    # noinspection PyTypeChecker
    return io.BufferedReader(io.BytesIO(byte_data))

先在原来make_qrcode基础上修改,之前只是调用了一个接口然后返回,这次是用qrcode库生成一个二维码图片的PIL.image对象,然后新建一个image对象读取背景模板,读取后将生成的二维码粘贴到模板上,并在新的图片上添加文字,最后转化成二进制数据返回。

@app.get("/qrcode")
async def qrcode(eid):
    return StreamingResponse(src.util.make_qrcode(eid), media_type="image/jpeg")

然后搞了一个web api来调用二维码的生成~


评论

《 “二维码的生成” 》 有 6 条评论

  1. 最近看好多人都在用 Python 有点心动了,不行我要坚定我的 JS 路线。

    1. 不影响的呀,我是python,js,C#都在用,这是这个项目用的python,我还是更喜欢C#

      1. 没那么多时间学习各种语言,有时间还是得把 JavaScript 先学好。

        1. 对,先学一门学好然后就可以很快的去学会其他的啦

  2. 大佬依然很强,晚上好

    1. 晚上好呀,小熊

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注