Die Version 0.9.0 der C/C++ Bilddecodierungsbibliothek SAIL wurde veröffentlicht. Sie kann verwendet werden, um Bildbetrachter zu erstellen, Bilder in den Speicher zu laden, Ressourcen während der Spieleentwicklung zu laden usw. Die Bibliothek setzt die Entwicklung der Bildformatdecodierer der ksquirrel-libs aus dem KSquirrel-Programm fort, die von C++ auf C umgeschrieben wurden. Das KSquirrel-Programm gibt es seit 2003 (diesen Monat wird das Projekt 20 Jahre alt), aber die Entwicklung des Bildbetrachters wurde 2008 zusammen mit KDE3 eingestellt. Der SAIL-Code wird unter der MIT-Lizenz veröffentlicht. Unterstützt werden Windows, macOS und Linux.
Wesentliche Merkmale:
- Vier API-Ebenen. Die niedrigste Einstiegsebene ist junior, bei der es möglich ist, nur einen Frame mit zwei Codezeilen zu laden: struct sail_image *image; SAIL_TRY(sail_load_from_file(path, &image));
Die tiefste Einstiegsebene ermöglicht das Laden von animierten oder mehrseitigen Bildern aus nicht standardisierten Quellen (nicht aus einer Datei oder aus dem Speicher).
- Unterstützung für das Laden aus Dateien oder aus dem Speicher.
- Dynamisch ladbare Codecs. Möglichkeit zur Kompilierung von Codecs in einer einzigen Bibliothek (-DSAIL_COMBINE_CODECS=ON), falls dynamisches Laden aus irgendeinem Grund unpraktisch ist.
- Der Code ist in C11 geschrieben mit Bindungen zu C++11.
- Verfügbar in Paketmanagern wie Conan, vcpkg, brew (einige PRs warten auf Zusammenführung).
- Unterstützt alle modernen Bildformate: JPEG, PNG, TIFF, GIF, AVIF, WEBP, JPEG XL usw.
- Übertrifft in der Leistung fast alle seine Konkurrenten wie STB oder FreeImage.

Quelle: opennet.ru
