动态从PIL提供图像
我正在使用PIL(Python图像库)和Paste来制作一个非常简单的网页。我有一个函数,它只返回一个图片标签:
def home(self):
return '<img src="photo" alt="photo"/>'
我还有一个叫做photo的函数(理想情况下)返回要放在img标签里的图片:
def photo(self):
img = image_from_PIL # this part works
output = StringIO.StringIO()
img.save(output, "JPEG") # saves the image as a StringIO in output
final_img = output.getvalue()
output.close()
# then set headers['content-type'] = 'image/jpeg' (confirmed this works)
return [final_img]
所以我知道图片在字符串final_img
里,并且内容类型是“image/jpeg”。我本以为这样就能正常工作,但我得到的只是一个状态为200的OK响应,大小却是0。
我还尝试了很多其他方法,包括:
- 把字符串转换成二进制然后输出
- 在头部设置内容长度为字符串的长度(还要乘以8,因为每个字符是8位)
如果有什么不同,我的服务器使用的是uWSGI和nginx。
我不知道还可以尝试什么!谢谢任何帮助。
1 个回答
1
不要返回一个包含图片的列表,而是直接返回图片本身。
把
return [final_img]
替换成
return final_img