2015/06/07

[Google App Engine][Python]Blobstoreの画像データについて

下のようなプログラムでwidthとheightプロパティーにアクセスしようとするとエラーが発生した。

import os
import webapp2

from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers

from google.appengine.ext import db
from google.appengine.ext import ndb
from google.appengine.api import images

class CreateHogeHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):

      try:

        uploaded_image_key = self.get_uploads()[0]
        uploaded_image_key = uploaded_image_key.key()

        img = images.Image(blob_key=uploaded_image_key)
        width = img.width
        height = img.height

        try:
          pass
      except BaseException,val:
        pass
エラーの内容をよくよく確認すると、一度、transformさせないといけないらしく、下のように組んだらエラーがなくなった。
import os
import webapp2

from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers

from google.appengine.ext import db
from google.appengine.ext import ndb
from google.appengine.api import images

class CreateHogeHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):

      try:

        uploaded_image_key = self.get_uploads()[0]
        uploaded_image_key = uploaded_image_key.key()

        img = images.Image(blob_key=uploaded_image_key)
        img.rotate(0)
        img.execute_transforms(output_encoding=images.JPEG)
        width = img.width
        height = img.height

        try:
          pass
      except BaseException,val:
        pass
これ、毎回、毎回、execute_transformsをコールしないと思うと、結構、無駄な気がするのだが。

もっと効率のいい方法はないのだろうか?

0 コメント:

コメントを投稿