Frage

Ich möchte eine dynamisch erzeugte PNG-Bild mit PyCairo erzeugen und servieren es Django usign. Ich lese diese: Serve eine dynamisch generierte Bild mit Django

Gibt es eine Möglichkeit zum Transport von Daten von PyCairo Oberfläche direkt in HTTP-Antwort? Ich tue dies für jetzt:

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

Aber es hat eigentlich keine Arbeit, weil es keine to_rgba Anruf ist (dieser Anruf ich Google Code gefunden verwenden, aber nicht funktioniert).

EDIT:. Die to_rgba kann durch den richtigen Anruf get_data ersetzt werden (), aber ich will noch wissen, ob ich kann Bypass PIL insgesamt

War es hilfreich?

Lösung

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

Andere Tipps

Sie können versuchen, diese: http: //www.stuartaxon. com / 2010/02/03 / mit-kairo-to-generate-svg-in-django Es geht darum, SVG, aber ich denke, es wird einfach zu adaptieren

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top