Python Image Library 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'
では、Google App Engine の Image インスタンスにはサイズがありませんか?
それでは、これはどのように機能しますか:
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 %}
/>