Unter MIT-Lizenz herausgegeben von Plattformübergreifende Bilddekodierungsbibliothek SAIL. SAIL ist eine Umbenennung der Codecs eines lange Zeit nicht unterstützten Bildbetrachters, der in C neu geschrieben wurde KShörnchen, aber mit einer abstrakten API auf hoher Ebene und zahlreichen Verbesserungen. Zielgruppe: Bildbetrachter, Spieleentwicklung, Laden von Bildern in den Speicher für andere Zwecke. Die Bibliothek befindet sich in der Entwicklung, ist aber bereits nutzbar. Die Kompatibilität von Binär- und Quellcode kann in dieser Entwicklungsphase nicht garantiert werden.
Features:
Eine einfache, kompakte und schnelle in C geschriebene Bibliothek ohne Abhängigkeiten von Drittanbietern (außer Codecs);
Einfache, verständliche und zugleich leistungsstarke API für alle Bedürfnisse;
Bindungen für C++;
Bildformate werden durch dynamisch geladene Codecs unterstützt;
Lesen (und schreiben) Sie Bilder aus einer Datei, einem Speicher oder sogar Ihrer eigenen Datenquelle.
Bestimmen des Bildtyps anhand der Dateierweiterung oder nach magische Zahl;
Derzeit unterstützte Formate: APNG (Lesen, nur Windows), JPEG (Lesen, Schreiben) PNG (Lesen, Schreiben).
Es wird daran gearbeitet, neue Formate hinzuzufügen. KSquirrel-libs unterstützte auf die eine oder andere Weise etwa 60 Formate, die beliebtesten Formate stehen an erster Stelle;
Lesevorgänge können Pixel immer im RGB- und RGBA-Format ausgeben;
Einige Codecs können Pixel in einer noch größeren Liste von Formaten ausgeben;
Die meisten Codecs können auch SOURCE-Pixel ausgeben. Dies ist beispielsweise nützlich für diejenigen, die vollständige Informationen aus CMYK- oder YCCK-Bildern erhalten möchten;
Lesen und Schreiben von ICC-Profilen;
Beispiele in C, Qt, SDL;
Unterstützte Plattformen:
Windows (Installer), macOS (Brew) und Linux (Debian).
Was SAIL nicht bietet:
Bildbearbeitung;
Andere Funktionen zur Farbraumkonvertierung als diejenigen, die von den zugrunde liegenden Codecs (libjpeg usw.) bereitgestellt werden;
Farbmanagementfunktionen (Verwendung von ICC-Profilen etc.)
/*
* Hier werden die empfangenen Pixel verarbeitet.
* Verwenden Sie dazu image->width, image->height, image->bytes_per_line,
* und image->pixel_format.
*/
Neuling: „Ich möchte nur dieses JPEG herunterladen“
Erweitert: „Ich möchte dieses animierte GIF aus dem Speicher laden“
Tiefseetaucher: „Ich möchte dieses animierte GIF aus dem Speicher laden und die volle Kontrolle über die Codecs und Pixelausgabe haben, die ich wähle.“
Technischer Taucher: „Ich möchte alles oben Genannte und meine eigene Datenquelle“
Direkte Konkurrenten aus der gleichen Gegend:
Freeimage
Teufel
SDL_Image
WIC
imlib2
Boost.GIL
gdk-pixbuf
Unterschiede zu anderen Bibliotheken:
Menschliche API mit erwarteten Entitäten – Bilder, Paletten usw.
Die meisten Codecs können mehr als nur RGB/RGBA-Pixel ausgeben.
Die meisten Codecs können Originalpixel ohne Konvertierung in RGB ausgeben.
Sie können Codecs in jeder Sprache schreiben und diese hinzufügen/entfernen, ohne das gesamte Projekt neu kompilieren zu müssen.
Behalten Sie Informationen über das Originalbild bei.
„Probing“ ist der Prozess, Informationen über ein Bild zu erhalten, ohne die Pixeldaten zu dekodieren.