我需要有一个 Python 文件,就像它是一个图像一样。即 Python 文件的路径将在网页的标签内使用。Python 文件将使用 PIL 动态创建图像(没有中间保存到文件)。
我正在使用 Python 2.7、Web.Py 和 PIL,并在 32 位 Windows XP 上进行开发,使用 WAMPSS Web 服务器,并使用最新的 Chrome。
我快到了。我认为。
这是我的 python 图像文件的简化示例:
#!/home/bin/python
# #############################################################################
import web, sys
from PIL import Image, ImageDraw, ImageFont
# #############################################################################
class debug:
def GET(self):
# drawing with PIL (Python Image Library)
# create a new 256x256 pixel image surface (default is black bg)
img = Image.new("RGB", (256, 256))
# set up the new image surface for drawing
draw = ImageDraw.Draw (img)
# REMOVED - Image manipulation
# Output the image to the browser
sys.stdout.write('Status: 200 OK\r\n')
sys.stdout.write('Content-type: image/png\r\n')
sys.stdout.write('\r\n')
img.save(sys.stdout, "PNG")
# #############################################################################
urls = ( '/debug.py', 'debug' )
app = web.application(urls, globals())
if __name__ == "__main__":
app.run()
# #############################################################################
现在,这行得通……有点。
如果我直接在浏览器(本地 AMPSS 服务器)中查看此文件,它会显示图像。但是,与类似的 1k PNG 图像相比,显示/服务器需要很长时间(5 秒以上)。Chrome 控制台说它失败了(虽然我可以看到图像)
我认为浏览器期待其他我没有发送的东西?
当我在 JQuery 和 OnLoad 事件中使用此图像时,真正的问题就出现了。然后事情变得……奇怪……因为缺少更好的词。我似乎有事件(不是我的)在加载和显示后数秒内清除图像。
Chrome 控制台说在检索图像时 GET 失败(尽管它确实显示了图像,至少在 JS 中的某些东西使它再次消失之前!)
有趣的是,这个问题似乎没有出现在最新的 Firefox 中。在最新的 Opera 中加载时间被夸大了,但是 JS 并没有出现图像故障。在 IE8 中也一样
更令人困惑的是,我有两台 Windows XP(32 位)开发机器。其中之一不会发生 JS 故障。而且 Chrome 控制台没有列出任何故障!
我在此处在线放置了图像文件的演示:LINKY 以及我在此处使用此文件的开发页面:LINKY 如果您在白色图像持有者周围单击,Jquery/JS 将激活。
我不知道这是否适用于您的设置。我只是为了完整性而在这里链接。
关于我所缺少的任何想法?