通过Python WSGI应用发送后图像失真

1 投票
3 回答
638 浏览
提问于 2025-04-15 12:07

很多时候,当我通过WSGI(使用wsgiref)发送图片数据时,图片会变得扭曲。比如,看看下面这个例子:

扭曲的谷歌logo
(来源: evanfosmark.com)

3 个回答

0

可能结果被截断了?试试用 wgetcurl 直接下载这个文件,然后用 cmp 命令和原始图片对比一下;这样可以帮助你找出问题。除此之外,哪怕你的代码很简单,也请把完整的代码和环境信息发出来。

1

这和 \n 没有被正确转换有关。我要感谢 Alex Martelli 指引我找到了正确的方向。

3

因为你没有发代码,这里有一段简单的代码,它在Windows上用Python 2.5可以正常运行。

from wsgiref.simple_server import make_server

def serveImage(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'image/png')]
    start_response(status, headers)

    return open("about.png", "rb").read()

httpd = make_server('', 8000, serveImage)
httpd.serve_forever()

也许你用的是"r"而不是"rb"。

撰写回答