Используя Pycairo, чтобы динамически генерировать изображения в Django
-
25-09-2019 - |
Вопрос
Я хочу создать динамически созданный образ PNG с Pycairo и обслуживать его USIGN Django. Я прочитал это: Подавать динамически сгенерированное изображение с Django.
Есть ли способ перевозить данные с поверхности Pycairoo непосредственно в HTTP-ответ? Я делаю это сейчас:
data = surface.to_rgba()
im = Image.frombuffer ("RGBA", (width, height), data, "raw", "RGBA", 0,1)
response = HttpResponse(mimetype="image/png")
im.save(response, "PNG")
return response
Но на самом деле это не работает, потому что нет вызова TO_RGBA (этот звонок, который я нашел с помощью Google Code, но не работает).
Редактировать: to_rgba можно заменить правильным вызовом get_data (), но я все еще хочу знать, смогу ли я обойти Pill.
Решение
def someView(request):
surface = cairo.ImageSurface(cairo.FORMAT_ARGB32, 100, 100)
context = cairo.Context(surface)
# Draw something ...
response = HttpResponse(mimetype="image/png")
surface.write_to_png(response)
return response
Другие советы
Вы можете попробовать это:http://www.stuartaxon.com/2010/02/03/using-cairo-to-dgenate-svg-in-django.Это о SVG, но я думаю, что это будет легко адаптировать
Не связан с StackOverflow