使用Pycairo动态生成图像并在Django中提供
我想用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这个调用(我在Google上找到的这个调用,但用不了)。
补充:to_rgba可以用正确的调用get_data()来替代,但我还是想知道有没有办法完全不使用PIL。
2 个回答
0
你可以试试这个链接:http://www.stuartaxon.com/2010/02/03/using-cairo-to-generate-svg-in-django。这个内容是关于SVG的,不过我觉得你可以很容易地调整一下来适应你的需求。
7
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这时候,我们可以去一些技术论坛,比如StackOverflow,去寻找解决方案或者向其他人请教。
在这些论坛上,很多人会分享他们的经验和解决方法。你可以看到其他人提问,描述他们遇到的具体问题,然后会有一些专业人士或者有经验的程序员给出建议和解决方案。
这些建议可能包括如何修改代码、使用不同的工具,或者是一些调试的方法。通过这些讨论,我们可以学习到很多实用的知识,帮助我们更好地理解编程。
总之,StackOverflow是一个很好的资源,可以帮助我们解决编程中遇到的各种问题,提升我们的技能。
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