【问题标题】:Create static graphics files (png, gif, jpg) using Ruby or Python [closed]使用 Ruby 或 Python 创建静态图形文件(png、gif、jpg)[关闭]
【发布时间】:2010-10-15 03:20:19
【问题描述】:

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

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

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

更新

这是一个示例图片:

【问题讨论】:

标签: python ruby graphics png


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    我会通过查看 its documentation,尤其是 documentation for the draw module 开始深入研究 PIL。

    【讨论】:

    • +1:上周做了。工作得很好——创建动态图表。
    【解决方案3】:

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

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


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

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

    【讨论】:

    • 图文链接在上面。矢量格式的问题是我不确定它们的便携性。我不希望我的目标受众非常技术性。
    • 矢量格式使绘制更容易,您可以将导出为 PNG 的最终图像提供给您的用户。
    【解决方案4】:

    我发现Gruff 很容易使用,当我在你的鞋子里。 Shameless blog plug.

    【讨论】:

    • Gruff 链接已失效。
    【解决方案5】:

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-05
        • 1970-01-01
        • 1970-01-01
        • 2013-01-05
        • 2014-05-31
        • 2013-04-25
        • 2020-11-01
        • 1970-01-01
        相关资源
        最近更新 更多