2012-05-21 13 views
106

Encontré un muy large list of available libraries en la wiki de Node.JS, pero no estoy seguro de cuáles de esas son más maduras y ofrecen un mejor rendimiento. Básicamente quiero hacer lo siguiente:¿Qué biblioteca debo usar para la manipulación de imagen del lado del servidor en Node.JS?

  1. carga algunas imágenes a un servidor de fuentes externas
  2. los puso en un gran lienzo
  3. cultivos y les enmascarar un poco
  4. aplicar un filtro o dos
  5. redimensionar la imagen final y dar un enlace a ella

gran ventaja si el paquete nodo funciona tanto en Linux y Windows .

+0

pregunta ya contestada aquí: http://stackoverflow.com/questions/4541332/whats-the-best-graphics-library-for-node-js- for-image-cropping – DjebbZ

+2

2015: esto también parece legítimo: https://github.com/oliver-moran/jimp – jmunsch

+0

@jm_____ stackoverflow es tanto una Q & A como una wiki. no dude en editar la respuesta para que más personas lo noten. –

Respuesta

171

responder a mi propia pregunta

Me pasé dos días cavando a través de librerías gráficas Node.js.

node-canvas

  • Yo probé por primera vez desde que estoy bastante familiarizado con <canvas> API. Es una gran ventaja para una biblioteca.
  • requiere Cairo, que no tiene una descarga fácil de Windows. Sin embargo, lo encontré en la distribución GTK +.
  • además necesita el código de enlace de la biblioteca nativa que se compilará en la instalación del módulo. Utiliza Node-Waf que aún no se ha portado a Windows.

gm

  • maduros
  • se ejecuta en Windows sin problemas
  • documentos son bien pero no exhaustiva: tenía que mirar hacia arriba en el código fuente de averiguar lo que está disponible API
  • lamentablemente no hay una manera fácil de combinar imágenes con gm. Tal vez haya alguna manera de lograrlo, 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 he usado this fork (buena cosa que la NGP puede tirar de bibliotecas directamente desde los repositorios GIT). Tiene enlaces para montage que hace exactamente lo que necesito.
  • ImageMagick is quite slow, aunque funciona en Windows.

Node-Vips

  • gran ventaja: se utiliza una increíble VIPS library 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.
  • igual que node-canvas requiere Node-Waf, por lo que ahora está disponible para Windows.

También miré otras bibliotecas de la lista, pero la mayoría de ellas son muy inmaduras o no se adaptan 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.

+37

Gracias por regresar para responder su propia pregunta. Gran escritura! – mpen

+0

En Windows, gm me pareció un poco lento, aunque creo que esto se debe en parte al tiempo que demoraron las instancias del ejecutable gm. –

+0

Node-waf ha sido reemplazado por node-gyp mientras tanto, por lo que la instalación de node-canvas debería ser posible en Windows de acuerdo con https://github.com/LearnBoost/node-canvas/wiki/Installation---Windows –

5

Recomiendo encarecidamente que compruebe gm con GraphicsMagick. API estable, rica en funciones, limpia, excelentes documentos y rápida.

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

3

Su es el link a la lona aplicación basada en GDI +

+1

No puedo hacer funcionar esto para nada. Acabo de recibir "% 1 no es una aplicación Win32 válida" tan pronto como lo necesito. – mpen

Cuestiones relacionadas