Python 使用PIL在App Engine上绘制图像
我已经读过主题“” 下面的代码将显示一个损坏的图像,我应该如何更正Python 使用PIL在App Engine上绘制图像,python,google-app-engine,python-imaging-library,Python,Google App Engine,Python Imaging Library,我已经读过主题“” 下面的代码将显示一个损坏的图像,我应该如何更正 class TestImg(webapp2.RequestHandler): def get(self): text_img = Image.new('RGBA', (800,600), (0, 0, 0, 0)) draw = ImageDraw.Draw(text_img) draw.text((0, 0), 'HELLO TEXT', font=ImageFont.l
class TestImg(webapp2.RequestHandler):
def get(self):
text_img = Image.new('RGBA', (800,600), (0, 0, 0, 0))
draw = ImageDraw.Draw(text_img)
draw.text((0, 0), 'HELLO TEXT', font=ImageFont.load_default())
self.response.headers['Content-Type'] = "image/png"
self.response.write(draw)
无法将您拥有的绘图对象传递回浏览器,因为它本身不是png
您需要调用draw.save()并向其传递一个StringIO对象以将文件写入。(您还需要提供文件类型)。然后,您将
self.response.write(the_stringio.getvalue())
根据Tim Hoffman所说,您的类将如下所示:
import StringIO
class TestImg(webapp2.RequestHandler):
def get(self):
text_img = Image.new('RGBA', (800,600), (0, 0, 0, 0))
draw = ImageDraw.Draw(text_img)
draw.text((0, 0), 'HELLO TEXT', font=ImageFont.load_default())
output = StringIO.StringIO()
text_img.save(output, format="png")
text_layer = output.getvalue()
output.close()
self.response.headers['Content-Type'] = 'image/png'
self.response.write(text_layer)
谢谢你的快速回复!我会再试一次。:-)