Arbeiten mit Bildern in TypeScript: Bibliotheken, Werkzeuge und Codebeispiele

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

Arbeiten mit Bildern in TypeScript: vollständiger Überblick über Werkzeuge und Bibliotheken



TypeScript ist eine leistungsstarke Sprache für die Server- und Cliententwicklung, die häufig für die Bildverarbeitung verwendet wird. In diesem Artikel betrachten wir die wichtigsten Bibliotheken und Werkzeuge für die Arbeit mit Bildern in TypeScript, einschließlich Installation, Konfiguration und praktischer Codebeispiele.



Die Bildverarbeitung kann in den unterschiedlichsten Projekten erforderlich sein: von Webanwendungen bis hin zu Backend-Diensten. TypeScript fügt strenge Typisierung hinzu, was die Entwicklung komplexer Algorithmen vereinfacht und die Anzahl der Fehler reduziert.



Beliebte Bibliotheken für die Arbeit mit Bildern



  • Sharp — eine leistungsstarke Bibliothek für Node.js, geschrieben in C++. Ideal für die serverseitige Verarbeitung: Größenänderung, Komprimierung, Formatkonvertierung.
  • Jimp — eine reine JavaScript-Bibliothek, die keine nativen Abhängigkeiten erfordert. Geeignet für einfache Operationen und plattformübergreifende Lösungen.
  • Canvas — eine Implementierung von HTML5 Canvas für Node.js. Ermöglicht das Zeichnen, Hinzufügen von Text und Erstellen komplexer Kompositionen.
  • Pica — eine Bibliothek für qualitativ hochwertige Größenänderung von Bildern im Browser und in Node.js.


Installation und Konfiguration von Sharp in TypeScript



Sharp ist eine der schnellsten Bibliotheken für die Bildverarbeitung. Die Installation erfolgt über npm:



npm install sharpnpm install @types/sharp --save-dev


Nach der Installation kann die Bibliothek in eine TypeScript-Datei importiert werden:



import sharp from 'sharp';

const resizeImage = async ( inputPath: string, outputPath: string, width: number, height: number): Promise<void> => { try { await sharp(inputPath) .resize(width, height) .toFile(outputPath); console.log('Bild erfolgreich geändert'); } catch (error) { console.error('Fehler bei der Größenänderung:', error); }};


Arbeiten mit Jimp: einfache Manipulationen



Jimp erfordert keine nativen Abhängigkeiten und eignet sich hervorragend für einfache Operationen. Installation:



npm install jimpnpm install @types/jimp --save-dev


Beispiel für die Änderung von Helligkeit und Kontrast mit Jimp:



import Jimp from 'jimp';

const adjustImage = async (inputPath: string, outputPath: string): Promise<void> => { const image = await Jimp.read(inputPath); image .brightness(0.2) // Helligkeit um 20% erhöhen .contrast(0.1) // Kontrast um 10% erhöhen .write(outputPath); console.log('Bild verarbeitet');};


Canvas: Bilder von Grund auf neu erstellen



Die Canvas-Bibliothek ermöglicht es, Bilder programmatisch zu erstellen, Formen zu zeichnen und Text hinzuzufügen. Installation:



npm install canvasnpm install @types/node --save-dev


Beispiel für die Erstellung eines einfachen Bildes mit Text:



import { createCanvas, loadImage } from 'canvas';import * as fs from 'fs';

const createTextImage = async ( text: string, outputPath: string): Promise<void> => { const width = 800; const height = 200; const canvas = createCanvas(width, height); const ctx = canvas.getContext('2d');

// Hintergrund füllen ctx.fillStyle = '#4a90d9'; ctx.fillRect(0, 0, width, height);

// Text konfigurieren ctx.font = 'bold 48px Arial'; ctx.fillStyle = '#ffffff'; ctx.textAlign = 'center'; ctx.textBaseline = 'middle';

// Text zeichnen ctx.fillText(text, width / 2, height / 2);

// In Datei speichern const buffer = canvas.toBuffer('image/png'); fs.writeFileSync(outputPath, buffer); console.log('Bild erstellt');};


Bildkomprimierung unter Beibehaltung der Qualität



Die Optimierung von Bildern ist eine kritische Aufgabe für Webprojekte. Sharp ermöglicht eine feine Abstimmung der Komprimierungsparameter:



                    

Empfehlungen