使用Ruby或Python创建静态图形文件(png,gif,jpg)

时间:2009-03-24 04:25:22

标签: python ruby graphics png

我想基于用户输入动态创建图形图像,然后将该图像显示为PNG文件(如果需要,则显示jpg或gif,但首选PNG)。

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

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

更新

这是一个示例图像:
Example horoscope graphic chart

6 个答案:

答案 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/