【问题标题】:Nodejs create a PNG image with text insideNodejs创建一个带有文本的PNG图像
【发布时间】:2014-05-01 22:20:03
【问题描述】:

我正在尝试创建一个新的 PNG 文件以通过 HTTP 服务回客户端(作为响应类型 image/png)

通过连接 3 个基本 PNG 文件并在图像中间添加自定义 text 来创建新文件。

问题是,nodejs 中没有内置库来执行此操作。我花了几个小时搜索,令我惊讶的是,没有pure JS 库可以做到这一点。最接近的是node-pngjs,但它缺乏添加文本的能力。我知道文本部分很复杂,因为它在某种程度上取决于操作系统(安装的字体、与所述字体交互的 DLL 等)。

还有其他节点模块是 imageMagick (gm) 和 GTK (canvas) 的包装器,但不幸的是 imageMagick 是 155MB 的二进制文件,要使用画布,您需要从源代码编译,安装 python 和 @ 987654327@ 并且它不适用于最新版本的 GTK。

我现在最好的方法是编写一个 .NET 程序集并通过 edge.js 从内部节点使用它,但这需要服务器上的 Windows 操作系统和 .NET 框架。

同样,这里复杂的部分是在图像中添加文本。

关于如何在没有大量外部依赖项的情况下使其正常工作的任何建议?

【问题讨论】:

    标签: javascript node.js image-processing png


    【解决方案1】:

    是的,你是对的,Node.js 对图像处理库的支持很弱,大多数是一些 CLI 应用程序的包装器。

    我将使用的解决方案涉及具有画布和 svg 支持的 PhantomJS,您可以使用这些功能。它比其他选项更轻,并且不需要安装外部应用程序。 http://phantomjs.org/quick-start.html

    【讨论】:

    • 感谢您指出 PhantomJS,我不知道。不过,我认为只生成图像有点过头了。
    • 是的,图像处理并不完美,因为它需要大量的 CPU 和内存资源。如果没有外部库和工具,做一些图像处理会很痛苦。
    猜你喜欢
    • 2013-08-06
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2013-09-07
    • 1970-01-01
    • 2012-09-22
    相关资源
    最近更新 更多