sharp rotate read nodejs node jimp images compress javascript image node.js image-processing image-manipulation

javascript - rotate - ¿Qué biblioteca debo usar para la manipulación de imágenes del lado del servidor en Node.JS?



resize image node js (3)

Ella es el link a la implementación del canvas basado en GDI +

Encontré una lista bastante grande de bibliotecas disponibles en Node.JS wiki, pero no estoy seguro de cuáles de ellas son más maduras y ofrecen un mejor rendimiento. Básicamente quiero hacer lo siguiente:

  1. cargar algunas imágenes a un servidor desde fuentes externas
  2. ponerlos en un gran lienzo
  3. recortar y enmascarar un poco
  4. aplicar un filtro o dos
  5. Cambiar el tamaño de la imagen final y darle un enlace

Gran ventaja si el paquete de nodos funciona tanto en Linux como en Windows .


Te recomiendo encarecidamente que compruebes gm con GraphicsMagick. API estable, rica en funciones, limpia, excelentes documentos y rápida.

Y funciona tanto en Windows como en Linux / MacOS / BSD / ...


Respondiendo mi propia pregunta

Pasé dos días cavando en las bibliotecas de gráficos de Node.js.

node-canvas

  • Lo intenté primero ya que estoy bastante familiarizado con <canvas> API. Es una gran ventaja para una biblioteca.
  • requiere Cairo, que no tiene una descarga de Windows fácil. Sin embargo, lo encontré en la distribución GTK +.
  • además, necesita el código de enlace de la biblioteca nativa para ser compilado en la instalación del módulo. Utiliza Node-Waf que todavía no se ha portado a Windows.

gm

  • maduro
  • se ejecuta en Windows sin problemas
  • los documentos están bien pero no son minuciosos: tuve que buscar en el código fuente para descubrir qué API está disponible
  • Desafortunadamente no hay una manera fácil de combinar imágenes con gm. Tal vez haya alguna manera de lograr eso, pero no he encontrado una después de dos horas con ella.

node-imagemagick

  • El repositorio oficial tiene muy pocos comandos básicos de ImageMagick cubiertos, pero utilicé este fork (lo bueno es que NPM puede extraer bibliotecas directamente de repositorios git). Tiene enlaces para montage que hace exactamente lo que necesito.
  • ImageMagick es bastante lento , aunque funciona en Windows.

Node-Vips

  • Gran ventaja: utiliza una increíble biblioteca VIPS con la que estoy familiarizado. VIPS es muy rápido y optimizado para imágenes grandes. Es muy inteligente utilizar los recursos de hardware: si su máquina tiene mucha RAM, procesará todo en la memoria, pero cambiará a cachés de la unidad de disco duro si la memoria es escasa o necesaria 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 transporta a Windows, pero hasta entonces me quedaré con node-imagemagick.