10

我想根据用户输入动态创建图形图像,然后将该图像呈现为 PNG 文件(或 jpg 或 gif,如有必要,但首选 PNG)。

这实际上是针对占星术应用的;我想做的是在PNG中生成图表以供显示。

Python 或 Ruby 都可以;事实上,可用的库可能决定了我使用的语言。

更新

这是一个示例图像:
星座运势图表示例

4

6 回答 6

11

也许矢量格式更适合您的需求,但如果没有具体示例来说明您想要获得什么,就很难说清楚。

例如,如果图像都相似,您可以使用 Inkscape 创建一个 SVG 基础图像,然后从 Python 或 Ruby 以编程方式对其进行编辑(通过编辑文本或使用 XML 库),最后将其导出为 PNG。


更新: 看到示例图像后,我认为 SVG 将是最方便的选择。SVG 图像是一个 XML 文件,基本上说“从这里到这里画一个圆圈,在那里写字符串 '13º52'”等。您可以在 Inkscape 中绘制一个独特的基本图表,并让您的程序只需添加线条和符号每个案例。最后导出为 PNG。

优点是:更容易绘制,图像完全可缩放,只需编辑属性即可更改样式(“使所有线条变宽”,“将所有文本更改为 Arial”,“将背景涂成蓝色”),您可以导出为任何格式而不会损失质量,我认为它更易于维护。

于 2009-03-24T04:47:53.823 回答
9

在 Python 中,您通常会使用 PIL,即 Python 图像库。除了最简单的任务之外,我从来没有将 PIL 用于任何事情,所以我不能说它在实践中的表现如何。

我将通过查看其文档开始深入研究 PIL ,尤其是绘图模块的文档

于 2009-03-24T04:36:54.880 回答
3

当我在你的鞋子里时,我发现Gruff很容易使用。 无耻的博客插件

于 2009-03-24T05:02:35.457 回答
2

查看Ruby-GD2或 ImageMagick 或 GraphicsMagick 绑定。

于 2009-03-24T04:34:02.813 回答
2

对于 Python I,图像格式最常见的选择是 PIL,然后是Pycairo用于矢量格式。两者可以一起工作,例如在这个食谱条目中使用 Pycairo 表面的 PIL 图像

于 2009-03-24T05:23:20.930 回答
1

当我在做 python chalange ( http://www.pythonchallenge.com/ ) 时,我使用了 Python Image Library ( http://www.pythonware.com/library/pil/ )

于 2009-03-24T05:15:03.040 回答