Nodejs创建一个内部带有文本的PNG图像

时间:2014-03-24 13:55:35

标签: javascript node.js image-processing png

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

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

问题是,nodejs中没有内置库来执行此操作。我花了几个小时搜索,令我惊讶的是,没有pure JS库来执行此操作。最接近的是node-pngjs但它缺乏添加文本的能力。我理解文本部分很复杂,因为它有点依赖于OS(安装的字体,与所述字体接口的DLL等)。

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

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

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

关于如何在没有外部依赖关系的情况下使其工作的任何建议?

1 个答案:

答案 0 :(得分:3)

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

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