0

Google App エンジンのブロブに画像を保存することができました (ダッシュボードのブロブ ビューアーと、サービング ハンドラーを使用してアプリで確認できます)。クライアントに提供している間にサイズを変更するには...問題は、それができないことです...そのブロブから画像を作成できません...これは私のコードです:

from google.appengine.api import images

from google.appengine.ext import blobstore      
from google.appengine.ext.webapp import blobstore_handlers  
....
class Image(webapp2.RequestHandler):
def get(self,id):
    product = Product.by_id(int(id))
    logging.info('pic key is' + str(product.small_pic.key()))
    img = images.Image(blob_key=str(product.small_pic.key()))
    img.im_feeling_lucky() # do a transform, otherwise GAE complains.

    img.execute_transforms(output_encoding=images.JPEG,quality=1)
    if img:
        self.response.headers['Content-Type'] = 'image/png'
        self.response.out.write(img)
    else:
        self.error(404)

上記のコードは、このスレッドから取得したものです: GAE: How to get the blob-image height

上記の ex /img/373 からコードを実行すると、次のエラーが表示されます。

エラーが含まれているため、画像 "http:..../img/373" を表示できません 。 ..

4

2 に答える 2

1

そのイメージをアプリケーションにパイプする必要はありません。gae には、画像のサイズを変更するためのサービスがあります。

from google.appengine.api.images import get_serving_url
url = get_serving_url( "blobkey")

次に、https://developers.google.com/appengine/docs/python/images/functions#imgsize値の 1 つをその URL に追加すれば完了です。

于 2013-04-16T16:10:21.577 に答える
1

最初の答えは近いものでした。このわずかな改良により、サイズを明示的に調整できます。

from google.appengine.api.images import get_serving_url
url = get_serving_url( "blobkey",size=1024)

上記のコードでは、size=1024 はソース ブロブ イメージのサイズを動的に変更して、イメージの元の比率を維持しながら、最長辺が 1024 ピクセルになるようにします。

于 2013-08-09T03:32:53.487 に答える