wake-up-neo.com

Welche Bibliothek sollte ich für die serverseitige Bildbearbeitung auf Node.JS verwenden?

Ich habe im Node.JS-Wiki eine ziemlich große Liste verfügbarer Bibliotheken gefunden, bin mir aber nicht sicher, welche davon ausgereifter sind und eine bessere Leistung bieten. Grundsätzlich möchte ich Folgendes tun:

  1. laden Sie einige Bilder von externen Quellen auf einen Server
  2. lege sie auf eine große Leinwand
  3. beschneide und maskiere sie ein bisschen
  4. wenden Sie einen oder zwei Filter an
  5. Ändere die Größe des endgültigen Bildes und gib einen Link dazu

Ein großes Plus, wenn das Knotenpaket sowohl unter Linux als auch unter Windows funktioniert.

Beantwortung meiner eigenen Frage

Ich habe zwei Tage damit verbracht, die Grafikbibliotheken von Node.j zu durchsuchen.

Node-Canvas

  • Ich habe es zuerst versucht, da ich mit der API <canvas> Ziemlich vertraut bin. Das ist ein großes Plus für eine Bibliothek.
  • es erfordert Kairo, das keinen einfachen Windows-Download bietet. Ich fand es jedoch in der GTK + -Distribution.
  • außerdem muss der native Bibliotheksbindungscode bei der Installation des Moduls kompiliert werden. Es verwendet Node-Waf, das noch nicht auf Windows portiert wurde.

gm

  • reifen
  • läuft unter Windows problemlos
  • docs sind ok aber nicht gründlich: Ich musste in den Quellcode schauen, um herauszufinden, welche API verfügbar ist
  • leider gibt es keine einfache Möglichkeit, Bilder mit gm zu kombinieren. Vielleicht gibt es einen Weg, das zu erreichen, aber ich habe nach zwei Stunden, die ich damit verbracht habe, keinen gefunden.

node-imagemagick

  • Das offizielle Repository enthält nur sehr wenige grundlegende ImageMagick-Befehle, aber ich habe diesen Fork (gut, dass NPM Bibliotheken direkt aus Git-Repositorys ziehen kann) verwendet. Es hat Bindungen für montage, die genau das tun, was ich brauche.
  • ImageMagick ist ziemlich langsam , obwohl es unter Windows funktioniert.

Node-Vips

  • Ein riesiges Plus: Es verwendet eine unglaubliche VIPS-Bibliothek , mit der ich vertraut bin. VIPS ist sehr schnell und für große Bilder optimiert. Es ist sehr klug, Hardwareressourcen zu nutzen: Wenn Ihr Computer über viel RAM verfügt, wird die gesamte Verarbeitung im Arbeitsspeicher ausgeführt, es wird jedoch auf Festplatten-Caches umgeschaltet, wenn der Arbeitsspeicher knapp ist oder für andere Anwendungen benötigt wird.
  • genau wie Node-Canvas benötigt es Node-Waf, ist also noch nicht für Windows verfügbar.

Ich habe mir auch andere Bibliotheken aus der Liste angesehen, aber die meisten sind entweder sehr unausgereift oder passen nicht zu meinem Anwendungsfall. Ich würde wirklich gerne versuchen, auf Node-Canvas oder Node-Vips zu migrieren, wenn Node-Waf auf Windows portiert wird, aber bis dahin bleibe ich bei node-imagemagick.

Ich rate Ihnen dringend, gm mit GraphicsMagick zu überprüfen. Stabile, funktionsreiche, saubere API, hervorragende Dokumente und schnell.

Und es funktioniert sowohl unter Windows als auch unter Linux/MacOS/BSD/...

6
Pierre

Sie ist die link to canvas-Implementierung basierend auf GDI +

3
pastorgluk