我想基于用户输入动态创建图形图像,然后将该图像显示为PNG文件(如果需要,则显示jpg或gif,但首选PNG)。
这实际上是一个占星术应用程序;我想做的是在PNG中生成图表以供显示。
Python或Ruby很好;事实上,可用的库可能决定我使用的语言。
这是一个示例图像:
答案 0 :(得分:11)
也许矢量格式更适合您的需求,但如果没有具体的例子来说明您想要获得的内容很难说清楚。
例如,如果图像完全相同,您可以使用Inkscape创建SVG基本图像,然后通过Python或Ruby编辑它(通过编辑文本或使用XML库),最后将其导出到PNG。
<强>更新强> 看到示例图像后,我认为SVG将是最方便的选择。 SVG图像是一个XML文件,基本上是“从这里画一个圆圈到这里,在那里写字符串'13º52'等等。你可以在Inkscape中绘制一个独特的基础图表,并让你的程序只添加线条和符号每个案例。最后,您导出到PNG。
优点是:您更容易绘制,图像完全可扩展,您可以通过编辑属性(“使所有行更宽”,“将所有文本更改为Arial”,“绘制背景蓝色”来更改样式) “),你可以导出任何格式而不会损失质量,我认为它更具有可持续性。
答案 1 :(得分:9)
在Python中,您通常使用PIL,即Python图像库。我从来没有将PIL用于任何超出最简单任务的事情,所以我不能说它在实践中的表现如何。
我开始深入研究PIL,看看its documentation,尤其是documentation for the draw module。
答案 2 :(得分:2)
查看Ruby-GD2或ImageMagick或GraphicsMagick绑定。
答案 3 :(得分:2)
当我穿着你的鞋子时,我发现Gruff很容易使用。 Shameless blog plug
答案 4 :(得分:2)
对于Python I,图像格式最常见的选择是PIL,然后Pycairo用于矢量格式。这两个可以一起工作,例如在use PIL images for Pycairo surfaces的这本食谱中。
答案 5 :(得分:1)
当我进行python挑战(http://www.pythonchallenge.com/)时,我使用了Python图像库(http://www.pythonware.com/library/pil/)