Используя Pycairo, чтобы динамически генерировать изображения в Django

StackOverflow https://stackoverflow.com/questions/3004854

Вопрос

Я хочу создать динамически созданный образ 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, но я думаю, что это будет легко адаптировать

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top