大家好,一般的想法是创建一个类似星系的地图。当我尝试显示生成的图像时遇到问题。我使用 Python Image 库来创建图像并将其存储在数据存储中。
当我尝试加载图像时,日志控制台上没有错误,浏览器上也没有图像。当我复制/粘贴图像链接(包括数据存储密钥)时,出现黑屏和以下消息:
图像“view-source:/localhost:8080/img?img_id=ag5kZXZ-c3BhY2VzaW0xMnINCxIHTWFpbk1hcBgeDA”无法显示,因为它包含错误。
火狐错误控制台:
错误:图像损坏或截断:/localhost:8080/img?img_id=ag5kZXZ-c3BhY2VzaW0xMnINCxIHTWFpbk1hcBgeDA
import cgi
import datetime
import urllib
import webapp2
import jinja2
import os
import math
import sys
from google.appengine.ext import db
from google.appengine.api import users
from PIL import Image
#SNIP
#class to define the map entity
class MainMap(db.Model):
defaultmap = db.BlobProperty(default=None)
#SNIP
class Generator(webapp2.RequestHandler):
def post(self):
#SNIP
test = Image.new("RGBA",(100, 100))
dMap=MainMap()
dMap.defaultmap = db.Blob(str(test))
dMap.put()
#SNIP
result = db.GqlQuery("SELECT * FROM MainMap LIMIT 1").fetch(1)
if result:
print"item found<br>" #debug info
if result[0].defaultmap:
print"defaultmap found<br>" #debug info
string = "<div><img src='/img?img_id=" + str(result[0].key()) + "' width='100' height='100'></img>"
print string
else:
print"nothing found<br>"
else:
self.redirect('/?=error')
self.redirect('/')
class Image_load(webapp2.RequestHandler):
def get(self):
self.response.out.write("started Image load")
defaultmap = db.get(self.request.get("img_id"))
if defaultmap.defaultmap:
try:
self.response.headers['Content-Type'] = "image/png"
self.response.out.write(defaultmap.defaultmap)
self.response.out.write("Image found")
except:
print "Unexpected error:", sys.exc_info()[0]
else:
self.response.out.write("No image")
#SNIP
app = webapp2.WSGIApplication([('/', MainPage),
('/generator', Generator),
('/img', Image_load)],
debug=True)
浏览器显示“找到的项目”和“找到的默认地图”字符串和损坏的图像链接异常处理没有捕获任何错误
感谢您的帮助问候伯特