Which library should I use for server-side image manipulation on Node.JS?

我在 Node.JS wiki 上找到了一个相当不错的 可用库的大型列表,但我不确定哪一个更成熟,性能更好。基本上我想做以下几件事:

  1. 从外部源加载一些图像到服务器
  2. 把它们放在一块大画布上
  3. 稍微修剪和掩饰一下
  4. 应用一两个过滤器
  5. 调整最终图像的大小,并给它一个链接

如果节点包在两个 Linux 和视窗上都能工作,那就更好了。

67844 次浏览

我强烈建议你用 GraphicsMagick 检查 gm。 稳定,功能丰富,干净的 API,伟大的文档,和快速。

它可以在 Windows 和 Linux/MacOS/BSD/上运行。

回答我自己的问题

我花了两天时间研究 Node.js 图形库。

节点画布

  • 我首先尝试了它,因为我非常熟悉 <canvas> API。这对于一个库来说是一个巨大的优势。
  • 它需要一个不容易的 Windows 下载开罗。我发现它在 GTK + 发行版虽然。
  • 而且在模块安装时需要编译本地库绑定代码。它使用的 Node-Waf 还没有被移植到 Windows。

通用汽车公司

  • mature
  • 在 Windows 上运行平稳
  • Docs 是 好吧,但并不全面: 我不得不查找源代码来找出什么 API 是可用的
  • 不幸的是,没有简单的方法将图像与 GM 结合起来。也许有一些方法可以达到这个目的,但是我花了两个小时还没有找到。

Node-image magick 节点图像魔术

节点 VIP

  • 巨大的优点: 它使用了一个令人难以置信的 贵宾图书馆,我很熟悉。VIPS 是非常快速和优化的大型图像。利用硬件资源是非常聪明的: 如果你的机器有大量的 RAM,它会在内存中完成所有的处理,但是如果内存不足或者其他应用程序需要内存,它会切换到硬盘缓存。
  • 同样,它也需要 Node-Waf,所以对 Windows 来说还不可用。

我还查看了列表中的其他库,但它们中的大多数要么非常不成熟,要么不适合我的用例。当 Node-Waf 被移植到 Windows 时,我真的很想尝试迁移到 Node-Canvas 或 Node-Vips,但在那之前,我将坚持使用 node-image 魔术。

她是基于 GDI + 的 链接到画布实现