我想根据用户输入动态创建图形图像,然后将该图像呈现为 PNG 文件(或 jpg 或 gif,如有必要,但首选 PNG)。
这实际上是针对占星术应用的;我想做的是在PNG中生成图表以供显示。
Python 或 Ruby 都可以;事实上,可用的库可能决定了我使用的语言。
更新
这是一个示例图像:
也许矢量格式更适合您的需求,但如果没有具体示例来说明您想要获得什么,就很难说清楚。
例如,如果图像都相似,您可以使用 Inkscape 创建一个 SVG 基础图像,然后从 Python 或 Ruby 以编程方式对其进行编辑(通过编辑文本或使用 XML 库),最后将其导出为 PNG。
更新: 看到示例图像后,我认为 SVG 将是最方便的选择。SVG 图像是一个 XML 文件,基本上说“从这里到这里画一个圆圈,在那里写字符串 '13º52'”等。您可以在 Inkscape 中绘制一个独特的基本图表,并让您的程序只需添加线条和符号每个案例。最后导出为 PNG。
优点是:更容易绘制,图像完全可缩放,只需编辑属性即可更改样式(“使所有线条变宽”,“将所有文本更改为 Arial”,“将背景涂成蓝色”),您可以导出为任何格式而不会损失质量,我认为它更易于维护。
查看Ruby-GD2或 ImageMagick 或 GraphicsMagick 绑定。
对于 Python I,图像格式最常见的选择是 PIL,然后是Pycairo用于矢量格式。两者可以一起工作,例如在这个食谱条目中使用 Pycairo 表面的 PIL 图像。
当我在做 python chalange ( http://www.pythonchallenge.com/ ) 时,我使用了 Python Image Library ( http://www.pythonware.com/library/pil/ )