GAE/Python : 外部画像読み込み&PIL画像加工&htmlへの画像出力
Google App Engine は python2.7 から PIL が利用できるようになっており、使い方を少々調査しました。
以下は、外部 URL から画像を読み込み、読み込んだ画像を PIL で加工し、加工した画像を html へ出力するためのサンプルソースコードです。
# -*- coding: utf-8 -*- import webapp2 import urllib2 from cStringIO import StringIO from PIL import Image class MainHandler(webapp2.RequestHandler): def get(self): #外部 URL から読み込み url = "http://www.dango-itimi.com/blog/image/sub_banner/1.png" filePointer = urllib2.urlopen(url) data = filePointer.read() filePointer.close() #PILで加工 image = Image.open(StringIO(data)) rectangle = (5, 5, 35, 35) image = image.crop(rectangle) #出力用加工 output = StringIO() image.save(output, format="png") imageLayer = output.getvalue() output.close() #出力 self.response.headers["Content-Type"] = "image/png" self.response.write(imageLayer) app = webapp2.WSGIApplication([ ('/', MainHandler) ], debug=True)
参考 stackoverflow)
How do I read image data from a URL in Python?
http://stackoverflow.com/questions/7391945/how-do-i-read-image-data-from-a-url-in-python
Using PIL to draw image on App Engine
http://stackoverflow.com/questions/15433252/using-pil-to-draw-image-on-app-engine