120

我在 Node.JS wiki 上找到了相当多的可用库列表,但我不确定其中哪些更成熟并提供更好的性能。基本上我想做以下事情:

  1. 从外部资源加载一些图像到服务器
  2. 把它们放在一张大画布上
  3. 裁剪并掩盖它们
  4. 应用一两个过滤器
  5. 调整最终图像的大小并提供指向它的链接

如果 node 包在 Linux和 Windows上都可以工作,那就大加分了。

4

3 回答 3

193

回答我自己的问题

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

节点画布

  • 由于我对<canvas>API 非常熟悉,所以我先尝试了它。对于图书馆来说,这是一个巨大的优势。
  • 它需要 Cairo,它没有简单的 Windows 下载。我在 GTK+ 发行版中找到了它。
  • 此外,它需要在模块安装时编译本机库绑定代码。它使用尚未移植到 Windows 的 Node-Waf。

通用汽车

  • 成熟
  • 在 Windows 上流畅运行
  • 文档还可以,不彻底:我不得不查看源代码以找出可用的 API
  • 不幸的是,没有简单的方法将图像与 gm 结合起来。也许有一些方法可以实现这一点,但在花了两个小时后我还没有找到一个。

节点图像魔术

  • 官方 repo 几乎没有涵盖基本的 ImageMagick 命令,但我使用了这个 fork(好在 NPM 可以直接从 git 存储库中提取库)。montage它具有完全符合我需要的绑定。
  • ImageMagick 很慢,虽然它可以在 Windows 上运行。

节点贵宾

  • 巨大的优势:它使用了我熟悉的令人难以置信的VIPS 库。VIPS 速度非常快,并且针对大图像进行了优化。利用硬件资源非常聪明:如果您的机器有大量 RAM,它将在内存中完成所有处理,但如果内存稀缺或其他应用程序需要,则会切换到硬盘缓存。
  • 与 node-canvas 相同,它需要 Node-Waf,因此它尚不适用于 Windows。

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

于 2012-05-23T09:58:35.603 回答
6

我强烈建议您使用 GraphicsMagick检查gm 。稳定、功能丰富、API 干净、文档很棒、速度很快。

它适用于 Windows 和 Linux / MacOS / BSD / ...

于 2012-05-22T19:12:58.940 回答
3

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

于 2012-09-29T08:55:14.280 回答