Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
550 views
in Technique[技术] by (71.8m points)

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

I would like to save my QR Code from the to_artistic method.

For my other qr codes I have been doing:

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

How can I do this for qr.to_artistic? Documentation: https://segno.readthedocs.io/en/latest/web-development.html

Thanks!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

You can pass a file-like object to the target, so:

import segno

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

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

You need to specify the kind=… parameter, otherwise the library will try to derive this from the filename, but since you use a BytesIO object, this has no filename.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...