由於是在GAE上的follwing型號:GAE:如何獲得的Blob圖像高度
avatar = db.BlobProperty()
通過調用與圖像實例屬性高度或寬度(see documentation):
height = profile.avatar.height
的引發以下錯誤:
AttributeError: 'Blob' object has no attribute 'height'
PIL已安裝。
由於是在GAE上的follwing型號:GAE:如何獲得的Blob圖像高度
avatar = db.BlobProperty()
通過調用與圖像實例屬性高度或寬度(see documentation):
height = profile.avatar.height
的引發以下錯誤:
AttributeError: 'Blob' object has no attribute 'height'
PIL已安裝。
如果圖像存儲在BlobProperty,然後將數據存儲到數據存儲,如果profile
是你的實體,則高度可作爲訪問:
from google.appengine.api import images
height = images.Image(image_data=profile.avatar).height
如果圖像是在blobstore(數據存儲區中的blobstore.BlobReferenceProperty),那麼你有兩種方法可以做到這一點,更好的方法是複雜的,並且需要獲得blob的讀取器並將其提供給exif reader以獲取大小。一個簡單的方法是:
如果avatar = db.BlobReferenceProperty()
和profile
是你的實體,則:
from google.appengine.api import images
img = images.Image(blob_key=str(profile.avatar.key()))
# we must execute a transform to access the width/height
img.im_feeling_lucky() # do a transform, otherwise GAE complains.
# set quality to 1 so the result will fit in 1MB if the image is huge
img.execute_transforms(output_encoding=images.JPEG,quality=1)
# now you can access img.height and img.width
blob不是圖像,它是一塊數據。
爲了使一個Image
你的斑點,你必須調用Image(blob_key=your_blob_key)
,如果你的斑被存儲在Blob存儲區,或者Image(image_data=your_image_data)
如果它存儲在數據存儲中的團塊。
能也顯示出更好的/複雜的方法,以及在這裏? – Lipis 2011-08-16 22:22:57