2011-01-25 42 views

回答

13

如果圖像存儲在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 
+1

能也顯示出更好的/複雜的方法,以及在這裏? – Lipis 2011-08-16 22:22:57

5

blob不是圖像,它是一塊數據。

爲了使一個Image你的斑點,你必須調用Image(blob_key=your_blob_key),如果你的斑被存儲在Blob存儲區,或者Image(image_data=your_image_data)如果它存儲在數據存儲中的團塊。

相關問題