2011-01-25 12 views

Odpowiedz

13

Jeśli obraz jest przechowywany w BlobProperty, a następnie dane są przechowywane w magazynie danych, a jeżeli profile ma swój podmiot, wówczas wysokość mogą być dostępne jako:

from google.appengine.api import images 
height = images.Image(image_data=profile.avatar).height 

Jeśli obraz jest w blobstore, (blobstore.BlobReferenceProperty w magazynie danych), to masz 2 sposoby na zrobienie tego, lepszy sposób jest skomplikowany i wymaga uzyskania czytnika bloba i podania go do czytnika exif, aby uzyskać rozmiar. Łatwiejszy sposób to:

jeśli avatar = db.BlobReferenceProperty() i profile to podmiot, a następnie:

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

można również pokazać lepsze/skomplikowaną metodę również tutaj? – Lipis

+0

wow niesamowite. Zastanawiałem się, dlaczego nie mogę uzyskać szerokości –

5

Kropelka nie jest obrazem, jest bryłą danych.

W celu dokonania Image z swojej blob, trzeba zadzwonić Image(blob_key=your_blob_key) jeśli blob jest przechowywany w Blobstore lub Image(image_data=your_image_data) jeśli jest przechowywany jako blob w magazynie danych.

Powiązane problemy