Опубликован релиз C/C++ библиотеки декодирования изображений SAIL 0.9.0, которую можно использовать для создания просмотрщиков изображений, загрузки изображений в память, загрузки ресурсов при разработке игр и т.п. Библиотека продолжает развитие декодировщиков форматов изображений ksquirrel-libs из программы KSquirrel, которые были переписаны с С++ на язык С. Программа KSquirrel существует с 2003 года (сегодня проекту исполнилось ровно 20 лет), но разработка просмотрщика была прекращена в 2008 году вместе с KDE3. Код SAIL распространяется под лицензией MIT. Поддерживается работа в Windows, macOS и Linux.
Ключевые особенности:
- Четыре уровня API. Самый неглубокий уровень погружения – junior, где возможно загрузить только один кадр с помощью двух строчек кода: struct sail_image *image; SAIL_TRY(sail_load_from_file(path, &image));
Самый глубокий уровень погружения – загрузка анимированных или многостраничных изображений из нестандартных источников (не из файла или из памяти).
- Поддержка загрузки из файлов или из памяти.
- Динамически подгружаемые кодеки. Возможность скомпилировать кодеки в одну библиотеку (-DSAIL_COMBINE_CODECS=ON) если динамическая загрузка по какой-то причине неудобна.
- Код написан на C11 с биндингом на C++11.
- Доступна в пакетных менеджерах Conan, vcpkg, brew (некоторые PR ожидают слияния).
- Поддерживает все современные форматы изображений: JPEG, PNG, TIFF, GIF, AVIF, WEBP, JPEG XL и др.
- Опережает по производительности почти всех своих конкурентов, таких как STB или FreeImage.