Objeto de imagem do Python Google App Engine
Usando o Python Image Library PIL e o Blobstore do Google App Engine ...
Este:
img = images.Image(blob_key=image)
logging.info(img.size)
self.response.headers['Content-Type'] = 'image/jpeg'
self.response.out.write(img)
Tem erro de atributo:
AttributeError: 'Image' object has no attribute 'size'
Portanto, a instância de imagem do mecanismo do Google app não tem tamanho?
Então, como isso funciona:
img = images.Image(blob_key=image)
img.resize(width, height)
img.im_feeling_lucky()
thumbnail = img.execute_transforms(output_encoding=images.JPEG)
self.response.headers['Content-Type'] = 'image/jpeg'
self.response.out.write(thumbnail)
o que estou perdendo?
EDITAR:
A correção estava usando o get_serving_urle não use o meu servidor de imagens como proposto por @voscausa. Devido ao fato de que meu objeto foi analisado por jinja2, foi impossível criar um objeto Image via jinja2. Então a solução final funcionou como abaixo:
class Mandelbrot(db.Model):
image = blobstore.BlobReferenceProperty()
@property
def image_url(self):
return images.get_serving_url(self.image)
Desta forma, eu poderia analisar o URL da imagem para a minha página como:
<img src=
{% if mandelbrot.image %}
"{{ mandelbrot.image_url }}"
{% else %}
"./assets/img/preloader.gif"
{% endif %}
/>