我在Node.JS wiki上找到了一个非常好的large list of available libraries但是我不确定哪些更成熟并提供更好的性能 . 基本上我想做以下事情:
-
从外部源将一些图像加载到服务器
-
将它们放在一个大画布上
-
裁剪并掩盖它们
-
应用一两个过滤器
-
调整最终图像的大小并为其指定链接
如果节点包在Linux和Windows上都能正常工作,那就太大了 .
我在Node.JS wiki上找到了一个非常好的large list of available libraries但是我不确定哪些更成熟并提供更好的性能 . 基本上我想做以下事情:
从外部源将一些图像加载到服务器
将它们放在一个大画布上
裁剪并掩盖它们
应用一两个过滤器
调整最终图像的大小并为其指定链接
如果节点包在Linux和Windows上都能正常工作,那就太大了 .
3 回答
她是基于GDI的link to canvas实现
回答我自己的问题
我花了两天时间挖掘Node.js图形库 .
node-canvas
我先尝试了,因为我对
<canvas>
API很熟悉 . 这对图书馆来说是一个巨大的优势 .它需要Cairo,它没有简单的Windows下载 . 我发现它在GTK发行版中 .
此外,它需要在模块安装时编译本机库绑定代码 . 它使用的Node-Waf尚未移植到Windows .
gm
成熟
在Windows上顺利运行
docs还可以但不透彻:我必须查看源代码以找出可用的API
_999_遗憾的是有一些方法可以实现这一点,但我没有找到一个花了两个小时 .
node-imagemagick
官方回购包含的基本ImageMagick命令很少,但我使用了this fork(NPM可以直接从git存储库中提取库) . 它具有
montage
的绑定,它完全符合我的需要 .ImageMagick is quite slow,虽然它适用于Windows .
Node-Vips
巨大的加号:它使用了令人难以置信的VIPS library,我非常聪明地利用硬件资源:如果你的机器有很多RAM,它将在内存中进行所有处理,但如果内存不足或需要,将切换到硬盘驱动器缓存用于其他应用 .
与node-canvas相同,它需要Node-Waf,因此它尚不适用于Windows .
我还查看了列表中的其他库,但是大多数库都非常不成熟或者不适合我的用例 . 当Node-Waf被移植到Windows时,我真的想尝试迁移到Node-Canvas或Node-Vips,但在那之前我会坚持使用node-imagemagick .
我强烈建议你用GraphicsMagick检查gm . 稳定,功能丰富,干净的API,出色的文档和快速 .
它适用于Windows和Linux / MacOS / BSD / ...