Использование 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())

  • Как incr работает со временем истечения срока действия?
  • Как поместить словарь в хранилище данных?
  • Использовать OAuth2 для аутентификации + совместимость с сервисом google.appengine.api.users
  • Как присвоить значение по умолчанию всем записям хранилища NDB?
  • Необязательный параметр URL в маршруте GAE webapp2
  • Загрузка файлов в App Engine с использованием форм webapp и Django
  • urlfetch gzip google для строки в строку
  • Как обрабатывать удаление в Google App Engine (Python)
  • Python - лучший язык программирования в мире.