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

10
我想根据用户的输入即时生成一个图像,并将该图像呈现为PNG文件(如果需要,也可以是jpg或gif,但优先选择PNG)。
实际上,这是一款占星应用程序;我想生成PNG格式的图表进行显示。
Python或Ruby都可以;事实上,可用的库可能会决定我使用的编程语言。

更新

以下是一个示例图片:
示例星座图表

类似于 - https://dev59.com/FXI-5IYBdhLWcg3wu7FU - Javid Jamae
6个回答

11

也许矢量格式更适合你的需求,但如果没有具体的示例,很难确定。

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


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

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


图形链接在上方。关于矢量格式的问题是我不确定它们有多可移植性;我不指望我的目标受众非常技术化。 - Charlie Martin
2
矢量格式使绘图更加容易,您可以将最终图像导出为PNG格式交付给用户。 - Roberto Bonvallet

9
在Python中,通常会使用PIL,即Python图像库。我从未将PIL用于除最简单任务之外的任何事情,因此无法说它的实际表现如何。
我建议查看PIL文档,特别是绘图模块的文档

+1:上周已经完成了。效果很好——可以实时生成图表。 - S.Lott

3

1
Gruff链接失效了。 - grepsedawk

2
看看Ruby-GD2或者一个ImageMagick或GraphicsMagick绑定。

2

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接