使用Python圖片庫PIL和谷歌App Engine的Blob存儲...Python的谷歌應用程序引擎Image對象
此:
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'
所以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 %}
/>
要解釋一點。沒有調整大小的第一個方法不提供有效的圖像資源。這是問題,而不是規模。 –
你的問題真的不是關於PIL,你應該改變標題。谷歌可能會使用PIL來實現它的Image類,但它是一個完全獨立的東西。 –
@MarkRansom行會OK! –