使用 Python 图像库 PIL 和 Google App Engine Blobstore...
这:
img = images.Image(blob_key=image)
logging.info(img.size)
self.response.headers['Content-Type'] = 'image/jpeg'
self.response.out.write(img)
有属性错误:
AttributeError: 'Image' object has no attribute 'size'
那么来自谷歌应用引擎的图像实例没有大小?
那么这是如何工作的:
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)
我错过了什么?
编辑:
修复是使用 get_serving_url而不是使用@voscausa 建议的我的图像服务器。由于我的对象是由 jinja2 模板解析的,因此不可能通过 jinja2 创建 Image 对象。所以最终的解决方案如下:
class Mandelbrot(db.Model):
image = blobstore.BlobReferenceProperty()
@property
def image_url(self):
return images.get_serving_url(self.image)
这样我可以将图像 url 解析到我的页面,如:
<img src=
{% if mandelbrot.image %}
"{{ mandelbrot.image_url }}"
{% else %}
"./assets/img/preloader.gif"
{% endif %}
/>