まず、画像ファイルを読み込むっていうサンプルが見つからなかった。
データストアの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 件のコメント:
コメントを投稿