GAE を使用して画像をアップロードし、google.appengine.api.images を使用してサイズを変更します。しかし、アップロードされたこの画像の元のサイズを取得したいと思います。image.width と image.height を使用しようとしましたが、int を取得しました呼び出し可能なエラーではありません。助けていただければ幸いです。
以下のコードを参照してください。
class PictureUploader( webapp.RequestHandler ):
WANNA_RATIO_ = 0.833333 # icon width : height | 100 : 120
MAX_RATIO_ = 0.913043 # 105 : 115
MIN_RATIO_ = 0.76 # 95 : 125
def get( self ):
self.post()
def post( self ):
if not check_session(self):
self.redirect('login', True)
from google.appengine.api import images
image_ = images.Image( self.request.get( 'picture' ) )
from decimal import Decimal
i_width = Decimal( image_.size[0] )
i_height = Decimal( image_.size[1] )
w_h_ratio = i_width / i_height
if PictureUploader.MIN_RATIO_ > w_h_ratio: # picture too narrow
h_ratio = i_height/120
expected_w = Decimal("%.6f"%(i_width/h_ratio))
image_ = images.resize(image_,expected_w,120)
elif PictureUploader.MAX_RATIO_ < w_h_ratio: # picture too short
w_ratio = i_width/100
expected_h = Decimal("%.6f"%(i_height/w_ratio))
image_ = images.resize(image_,100,expected_h)
else:
image_ = images.resize( image_, 100, 120 )
models.Life(user = self.session['key'],pictureblob=image_).put()
image_.size[0] が表示されますが、機能しません。