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 sharpHauptfunktionen 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 jimpHauptfunktionen
- 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 gmAuß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') Auch in der Bibliothek
HTML-Parsing in TypeScript: Bibliotheken, Werkzeuge und Beispiele
Konfiguration von Java-Anwendungen: Bibliotheken und Tools zur Verwaltung von Einstellungen
Arbeit mit S3 und Cloud-Speichern in TypeScript: vollständiger Leitfaden
Mikro-ORM für TypeScript: Komplettes Tutorial mit Beispielen