ImageWizard

ImageWizard ist ein leistungsfähiger, quelloffener Webservice zur dynamischen Bildverarbeitung, der auf ASP.NET Core basiert. Er bietet eine moderne Alternative zu Tools wie Thumbor und ermöglicht es, Bilder direkt über URLs zu transformieren, zu optimieren und bereitzustellen.

  • Flexible Bildquellen: Unterstützt das Laden von Bildern aus verschiedenen Quellen, darunter HTTP-URLs, lokale Dateien, YouTube-Thumbnails, Gravatar, OpenGraph, Azure und OpenStreetMap.​
  • Vielfältige Filter: Bietet eine breite Palette an Bildfiltern wie Zuschneiden, Drehen, Skalieren sowie Effekte wie Graustufen und Unschärfe.​
  • PDF-Verarbeitung: Ermöglicht die Umwandlung von PDF-Seiten in Bilder mit Unterstützung für Formate wie JPEG, PNG und WebP .​ GitHub Caching-Optionen: Unterstützt verschiedene
  • Caching-Mechanismen, einschließlich Dateisystem, verteiltem Cache (z. B. Redis) und MongoDB, um die Leistung zu optimieren.​
  • Sicherheitsfunktionen: Schützt URLs mit HMACSHA256-Signaturen, unterstützt ETags und Cache-Control-Header zur effizienten Inhaltsbereitstellung .​ 
  • Erweiterbarkeit: Bietet die Möglichkeit, benutzerdefinierte Filter und Loader zu erstellen, um spezifische Anforderungen zu erfüllen.

Ein Beispiel für eine Bildanfrage mit Transformationen:​

https://localhost/image//resize(200,200)/grayscale()/jpg(90)/fetch/https://upload.wikimedia.org/wikipedia/commons/b/b7/Europe_topography_map.png​

In diesem Beispiel wird ein Bild von Wikipedia geladen, auf 200x200 Pixel skaliert, in Graustufen umgewandelt und als JPEG mit 90 % Qualität ausgegeben .​

ImageWizard kann als Middleware in ASP.NET Core-Anwendungen integriert werden. Die Konfiguration erfolgt über die appsettings.json-Datei und die Registrierung der Dienste im Startup-Code. Ein NuGet-Paket (ImageWizard.Client) steht für die einfache Integration zur Verfügung .​

  • Pipelines: Verwendet ImageSharp, SkiaSharp, SvgNet und DocNET für die Bild- und Dokumentenverarbeitung.​
  • Speicherverwaltung: Nutzen von RecyclableMemoryStream für effizientes Speichermanagement.​
  • Aktuelle Version: Version 3.8.0 mit Unterstützung für .NET 8.0 und ImageSharp 3.1.1. Die Abhängigkeit von der System.Drawing-Bibliothek wurde entfernt, was die Docker-Kompatibilität verbessert .​
  • GitHub-Repository: github.com/usercode/ImageWizard​
  • Demo: imagewizard.net

ImageWizard ist unter der MIT-Lizenz verfügbar und eignet sich hervorragend für Entwickler, die eine flexible und erweiterbare Lösung zur dynamischen Bildverarbeitung in ihren Anwendungen benötigen.