flask 如何返回图片流

2015-11-27 10:40:26 +08:00
 aiqier

我的 flask 需要通过传入的 url 参数,通过 qrcode 库生成二维码图片,然后将它写入流中返回。

import qrcode
qr = qrcode.QRCode(
version=1,
error_correction=qrcode.constants.ERROR_CORRECT_H,
box_size=10,
border=1
)
qr.add_data(url)
img = qr.make_image()
生成的 qrcode.image.pil.PilImage 对象并没有太多的方法可用,

但可以通过: img.convert("RGBA ”)能得到一个 PIL.Image.Image 对象
我想请教:
1.如何把这个 Image 对象,通过流读出来。
2.如何把这个流通过 flask 写给请求者。

6564 次点击
所在节点    Python
3 条回复
thomaspaine
2015-11-27 10:58:24 +08:00
img = qr.make_image()
buf = StringIO.StringIO()
img.save(buf, 'jpeg')
buf_str = buf.getvalue()
response = app.make_response(buf_str)
response.headers['Content-Type'] = 'image/jpeg'
return response
从 qr.make_image()接下去,我是这么写的,供参考
knightdf
2015-11-27 11:28:33 +08:00
返回图片数据就好了,图片也是数据流,把数据解析成图片那是显示的时候的事
ryd994
2015-11-27 15:53:52 +08:00
你可以返回一个 iterator

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/239331

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX