Использование PIL для рисования изображения в App Engine

Я прочитал тему « App Engine, PIL и накладываемый текст ».

В приведенном ниже коде будет показано сломанное изображение, как мне его исправить?

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) 

2 Solutions collect form web for “Использование PIL для рисования изображения в App Engine”

Основываясь на том, что сказал Тим Хоффман, ваш класс будет выглядеть примерно так:

 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) 

Объект рисования, который у вас есть, не может быть возвращен в браузер, поскольку он не является png как таковой.

Вам нужно вызвать draw.save () и передать ему объект StringIO для записи файла. (вам также потребуется указать тип файла). Затем вы self.response.write(the_stringio.getvalue())

  • Как сделать перенаправление и сохранить строку запроса?
  • Python Threads (или их эквивалент) в решении Google Application Engine?
  • Как объединить несколько исходных файлов Python в один файл?
  • Вставка растрового изображения в файл Excel (xlwt) в GAE
  • Сжатие изображений GAE Blob с использованием Python Base64?
  • Как использовать метод HTTP DELETE в Google App Engine?
  • задачи и не-идемпотентные задачи
  • Отложить веб-службу с помощью App Engine и Webapp
  • Подписание строки с закрытым ключом RSA в Google App Engine Python SDK
  • Как включить библиотеку Stripe с Google App Engine
  • Каков предпочтительный метод использования jinja2 в App Engine?
  • Python - лучший язык программирования в мире.