动态从PIL提供图像

1 投票
1 回答
990 浏览
提问于 2025-04-16 18:43

我正在使用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

撰写回答