まず、画像ファイルを読み込むっていうサンプルが見つからなかった。
データストアのBlobProperty使うっていうのは割と見つかるんだけど。
以下はimageディレクトリにある画像ファイルhoge.pngを読み込んでImagesオブジェクト作り表示させる簡単なサンプル。
import wsgiref.handlers from google.appengine.ext import webapp from google.appengine.ext.webapp import template from google.appengine.api import images import os class MainHandler(webapp.RequestHandler): def get(self): imgdir = os.path.join(os.path.dirname(__file__), 'image') fp = open(imgdir + '/hoge.png','rb') data = fp.read() fp.close() img = images.resize(data, 32, 32) self.response.headers['Content-Type'] = "image/png" self.response.out.write(img) def main(): application = webapp.WSGIApplication([ ('/', MainHandler) ], debug=True) wsgiref.handlers.CGIHandler().run(application) if __name__ == '__main__': main()■ポイント1:読み込む画像が入ったディレクトリは静的ディレクトリにしない
上のサンプルではimageディレクトリにあるhoge.pngを読み込んでます。静的ディレクトリに指定されたものはスクリプトファイルから読めませんのでapp.yamlにはimageディレクトリをstaticで登録しちゃいけません。
以下の例ではimg_staticを静的ディレクトリに指定してますのでこの中のファイルは読むことができません。
application: hogehoge version: 1 runtime: python api_version: 1 handlers: - url: /img_static static_dir: img_static - url: .* script: main.py■ポイント2:コンストラクタを使わない。
なんかうまくいかないので。どうやったらいいのかな?できると思うんだけど。
img = images.Image(data)
■参考にしたサイト
http://d.hatena.ne.jp/kwatch/20100415/1271285578#
0 件のコメント:
コメントを投稿