将 django python 中的二维码保存为 to_artistic 方法的 base64

Saving a QR Code in django python as base64 for to_artistic method

我想通过 to_artistic 方法保存我的二维码。

我一直在做的其他二维码:

buffer = io.BytesIO()
qr_img.save(buffer, format="PNG")
qr_code = "data:image/png;base64,"+base64.b64encode(buffer.getvalue()).decode("utf-8")
                

如何为 qr.to_artistic 执行此操作?文档:https://segno.readthedocs.io/en/latest/web-development.html

谢谢!

您可以将类似文件的对象传递给 target,因此:

import segno

qr = segno.make('The Beatles -- Abbey Road', error='h')

buffer = io.BytesIO()
qr.to_artistic(
    background='my_background.gif',
    <b>target=buffer</b>,
    scale=4,
    <b>kind='gif'</b>
)
qr_code = 'data: image/gif;base64, '+base64.b64encode(buffer.getvalue()).decode('utf-8')

您需要指定 kind=… 参数,否则库将尝试从文件名派生它,但由于您使用 BytesIO 对象,因此 没有 文件名.