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


117

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 ein oder zwei Filter an
  5. Ändern Sie die Größe des endgültigen Bildes und geben Sie einen Link dazu

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


Frage bereits hier beantwortet: stackoverflow.com/questions/4541332/…
DjebbZ

2
2015: Dies scheint auch legitim: github.com/oliver-moran/jimp
jmunsch

@jm_____ stackoverflow ist sowohl ein Q & A als auch ein Wiki. Fühlen Sie sich frei, die Antwort so zu bearbeiten, dass mehr Leute sie bemerken.
Andrew Андрей Листочкин

Antworten:


184

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 <canvas>API ziemlich vertraut bin . Es ist ein großes Plus für eine Bibliothek.
  • Es erfordert Kairo, das keinen einfachen Windows-Download hat. Ich habe es allerdings in der GTK + Distribution gefunden.
  • Darüber hinaus muss der native Bibliotheksbindungscode bei der Modulinstallation kompiliert werden. Es wird Node-Waf verwendet, das noch nicht auf Windows portiert wurde.

gm

  • reifen
  • läuft unter Windows reibungslos
  • Dokumente sind in Ordnung, aber nicht gründlich: Ich musste im Quellcode nachsehen, um herauszufinden, welche API verfügbar ist
  • Leider gibt es keine einfache Möglichkeit, Bilder mit gm zu kombinieren. Vielleicht gibt es einen Weg, dies zu erreichen, aber ich habe nach zwei Stunden, die ich damit verbracht habe, keinen gefunden.

Node-Imagemagick

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

Node-Vips

  • 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, führt er die gesamte Verarbeitung im Speicher durch, wechselt jedoch zu Festplatten-Caches, wenn der Speicher knapp ist oder für andere Anwendungen benötigt wird.
  • Wie bei Node-Canvas ist Node-Waf erforderlich, sodass es für Windows noch nicht verfügbar ist.

Ich habe mir auch andere Bibliotheken aus der Liste angesehen, aber die meisten davon sind entweder sehr unreif 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.


44
Vielen Dank, dass Sie zurückgekommen sind, um Ihre eigene Frage zu beantworten. Tolles Schreiben!
Mpen

Unter Windows schien mir gm etwas langsam zu sein - obwohl ich denke, dass dies teilweise darauf zurückzuführen ist, wie lange es gedauert hat, Instanzen der ausführbaren gm-Datei zu erzeugen.
Gareth Oakley

11
Die Zeit hat sich geändert und NODE-Vips hatte 1 Jahr + kein Update. Ich empfehle stattdessen Sharp zur Liste hinzuzufügen . Es verwendet auch VIPS und wird aktiv gepflegt: github.com/lovell/sharp
Simon Fakir

5
Für diejenigen, die sich heutzutage mit dieser Frage befassen, ist LWIP eine weitere gute Alternative. Keine externen Abhängigkeiten, es basiert auf einem C ++ - Addon von node.js.
MaxArt

1
github.com/lovell/sharp , eine weitere Knotenbindung für libvips, funktioniert jetzt unter Windows.
JCupitt

6

Ich würde Ihnen dringend empfehlen, gm mit GraphicsMagick zu überprüfen . Stabile, funktionsreiche, saubere API, großartige Dokumente und schnell.

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


3

Sie ist der Link zur Canvas-Implementierung basierend auf GDI +


1
Ich kann dieses Ding überhaupt nicht zum Laufen bringen. Ich bekomme nur "% 1 ist keine gültige Win32-Anwendung", sobald ich es benötige.
Mpen
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.