"image contains error", trying to create and display images using google app engine
Posted
by
bert
on Stack Overflow
See other posts from Stack Overflow
or by bert
Published on 2012-05-31T11:55:38Z
Indexed on
2012/05/31
16:40 UTC
Read the original article
Hit count: 349
Hello all the general idea is to create a galaxy-like map. I run into problems when I try to display a generated image. I used Python Image library to create the image and store it in the datastore.
when i try to load the image i get no error on the log console and no image on the browser. when i copy/paste the image link (including datastore key) i get a black screen and the following message:
The image “view-source:/localhost:8080/img?img_id=ag5kZXZ-c3BhY2VzaW0xMnINCxIHTWFpbk1hcBgeDA” cannot be displayed because it contains errors.
the firefox error console:
Error: Image corrupt or truncated: /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)
the browser shows the "item found" and "defaultmap found" strings and a broken imagelink the exception handling does not catch any errors
Thanks for your help Regards Bert
© Stack Overflow or respective owner