Domanda

voglio generare un'immagine PNG creato in modo dinamico con Pycairo e servire usign Django. Ho letto questo: Serve un'immagine generata dinamicamente con Django

C'è un modo per i dati di trasporto dalla superficie Pycairo direttamente in HTTP di risposta? Sto facendo questo per ora:

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

Ma in realtà non funziona perché non c'è una chiamata to_rgba (questa chiamata che ho trovato utilizzando il codice di Google, ma non funziona).

EDIT:. L'to_rgba può essere sostituito dai get_data chiamata corretti (), ma ho ancora voglia di sapere se posso bypass PIL del tutto

È stato utile?

Soluzione

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

Altri suggerimenti

Si può provare questo: http: //www.stuartaxon. com / 2010/02/03 / usando-cairo-to-generate-svg-in-django Si tratta di SVG, ma penso che sarà facile adattarsi

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top