Bildverarbeitung in Node.js: Bibliotheken Sharp, Jimp und gm

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Arbeit mit Bildern in Node.js: Überblick über die besten Bibliotheken



In der modernen Webentwicklung mit Node.js besteht häufig die Notwendigkeit, Bilder programmatisch zu verarbeiten: Größe ändern, Formate konvertieren, Wasserzeichen hinzufügen oder für schnellere Ladezeiten von Websites optimieren. In diesem Artikel betrachten wir die drei beliebtesten Bibliotheken für die Bildverarbeitung in der Node.js-Umgebung: Sharp, Jimp und gm (GraphicsMagick).



1. Sharp – schnelle und effiziente Verarbeitung



Die Bibliothek Sharp verwendet das native Modul libvips, das in C geschrieben ist, und bietet so maximale Leistung. Sie ist ideal für Serveranwendungen, bei denen Dutzende oder Hunderte von Bildern pro Sekunde schnell verarbeitet werden müssen.



Installation

npm install sharp


Hauptfunktionen und Beispiele

  • Größenänderung – resize(width, height)
  • Formatkonvertierung – toFormat('webp')
  • Zuschneiden und Drehen – extract(), rotate()
  • Textüberlagerung – composite()


Beispiel: Größenänderung und Konvertierung in WebP

const sharp = require('sharp');

sharp('input.jpg') .resize(800, 600) .toFormat('webp') .toFile('output.webp') .then(info => console.log('Fertig:', info)) .catch(err => console.error(err));


Beispiel: Erstellen eines Thumbnails mit Zuschnitt

const sharp = require('sharp');

sharp('large-photo.jpg') .resize(200, 200, { fit: 'cover' }) .toFile('thumbnail.jpg') .then(() => console.log('Thumbnail erstellt'));


2. Jimp – reine JavaScript-Lösung



Die Bibliothek Jimp (JavaScript Image Manipulation Program) ist vollständig in JavaScript geschrieben und erfordert keine Installation zusätzlicher Systemabhängigkeiten. Dies macht sie zur idealen Wahl für Umgebungen, in denen native Module nicht verwendet werden können (z. B. einige Cloud-Plattformen).



Installation

npm install jimp


Hauptfunktionen

  • Größenänderung, Zuschneiden, Drehen
  • Anwenden von Farbeffekten (Graustufen, Invertierung)
  • Textüberlagerung mit Schriftartauswahl
  • Arbeit mit Transparenz (PNG)


Beispiel: Text auf ein Bild überlagern

const Jimp = require('jimp');

Jimp.read('background.png') .then(image => { return Jimp.loadFont(Jimp.FONT_SANS_32_WHITE) .then(font => { image.print(font, 50, 50, 'Hallo, Welt!'); return image.writeAsync('result.png'); }); }) .catch(err => console.error(err));


Beispiel: Graustufen erstellen

const Jimp = require('jimp');

Jimp.read('colorful.jpg') .then(image => { return image .greyscale() .writeAsync('black-white.jpg'); }) .catch(err => console.error(err));


3. gm (GraphicsMagick) – leistungsstarkes Werkzeug für komplexe Aufgaben



Die Bibliothek gm ist ein Wrapper für die Systemdienstprogramme GraphicsMagick oder ImageMagick. Sie bietet nahezu unbegrenzte Möglichkeiten der Bildverarbeitung, erfordert jedoch die Installation der entsprechenden Software auf dem Server.



Installation

npm install gm

Außerdem muss GraphicsMagick oder ImageMagick im System installiert werden (z. B. über apt-get, brew oder den Windows-Installer).



Hauptfunktionen

  • Unterstützung aller Bildformate
  • Komplexe Überlagerung von Ebenen und Masken
  • Erweiterte Farbkorrektur
  • Stapelverarbeitung


Beispiel: Wasserzeichen überlagern

const gm = require('gm');

gm('input.jpg')

Empfehlungen