0

我想用 Pycairo 生成一个动态创建的 png 图像并使用 Django 为它提供服务。我读到:使用 Django 提供动态生成的图像

有没有办法将 Pycairo 表面的数据直接传输到 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 调用(这个调用我发现使用谷歌代码但不起作用)。

编辑: to_rgba 可以替换为正确的调用 get_data(),但我仍然想知道我是否可以完全绕过 PIL。

4

2 回答 2

7
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
于 2010-06-15T13:02:06.313 回答
0

你可以试试这个: http: //www.stuartaxon.com/2010/02/03/using-cairo-to-generate-svg-in-django 这是关于 SVG 但我认为它很容易适应

于 2010-06-10T10:43:31.363 回答