Релиз библиотеки декодирования изображений SAIL 0.9.0

Опубликован релиз 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.


Release. Ссылка here.