我应该使用哪个库在 Node 上进行服务器端图像操作.JS?[已关闭]

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

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

如果节点包同时适用于Linux和Windows,那就太好了。


答案 1

回答我自己的问题

我花了两天时间挖掘Node.js图形库。

节点画布

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

通用 汽车

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

node-imagemagick

  • 官方存储库所涵盖的基本ImageMagick命令很少,但我使用了这个分支(NPM可以直接从git存储库中提取库)。它具有绑定,可以完全满足我的需求。montage
  • ImageMagick非常慢,尽管它可以在Windows上运行。

节点-贵宾

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

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


答案 2

我强烈建议您使用GraphicsMagick检查gm。稳定,功能丰富,干净的API,出色的文档和快速。

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