Question

Je veux générer une image dynamique créée avec .png pycairo et servez usign Django. Je lis ceci:. servir une image générée dynamiquement avec Django

Y at-il un moyen de transport de données de surface pycairo directement en réponse HTTP? Je fais cela pour l'instant:

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

Mais il ne fonctionne pas en réalité parce qu'il n'y a pas un appel to_rgba (ce que j'ai trouvé appel à l'aide du code Google, mais ne fonctionne pas).

EDIT:. Le to_rgba peut être remplacé par le get_data d'appel correct (), mais je veux encore savoir si je peux contourner PIL tout à fait

Était-ce utile?

La solution

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

Autres conseils

Vous pouvez essayer ceci: http: //www.stuartaxon. com / 2010/02/03 / utilisant-cairo à générer-svg-en-django Il est sur le SVG, mais je pense qu'il sera facile d'adapter

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top