Respondiendo mi propia pregunta
Pasé dos días investigando las bibliotecas gráficas de Node.js.
lienzo de nodo
- Lo probé primero porque estoy bastante familiarizado con la
<canvas>
API. Es una gran ventaja para una biblioteca.
- requiere Cairo, que no tiene una fácil descarga de Windows. Sin embargo, lo encontré en la distribución GTK +.
- además, necesita que se compile el código de enlace de la biblioteca nativa en la instalación del módulo. Utiliza Node-Waf, que aún no se ha portado a Windows.
gm
- maduro
- se ejecuta en Windows sin problemas
- los documentos están bien pero no son exhaustivos: tuve que buscar en el código fuente para averiguar qué API está disponible
- desafortunadamente, no hay una manera fácil de combinar imágenes con gm. Tal vez haya alguna forma de lograrlo, pero no he encontrado una después de pasar dos horas con ella.
nodo-imagemagick
- El repositorio oficial tiene muy pocos comandos básicos de ImageMagick cubiertos, pero usé esta bifurcación (lo bueno es que NPM puede extraer bibliotecas directamente de los repositorios de git). Tiene fijaciones para las
montage
que hace exactamente lo que necesito.
- ImageMagick es bastante lento , aunque funciona en Windows.
Nodo-Vips
- Gran ventaja: utiliza una increíble biblioteca de VIPS con la que estoy familiarizado. VIPS es muy rápido y está optimizado para imágenes grandes. Es muy inteligente al utilizar los recursos de hardware: si su máquina tiene mucha RAM, hará todo el procesamiento en la memoria, pero cambiará a cachés del disco duro si la memoria es escasa o se requiere para otras aplicaciones.
- Al igual que node-canvas, requiere Node-Waf, por lo que aún no está disponible para Windows.
También miré otras bibliotecas de la lista, pero la mayoría de ellas son muy inmaduras o no se ajustan a mi caso de uso. Realmente me gustaría intentar migrar a Node-Canvas o Node-Vips cuando Node-Waf se transfiera a Windows, pero hasta entonces me quedaré con node-imagemagick.
Andrew Андрей Листочкин
fuente