Под лицензией MIT ਪ੍ਰਕਾਸ਼ਿਤ кросс-платформенная библиотека декодирования изображений SAIL. SAIL — это переписанный на С ребрендинг кодеков из давно не поддерживаемой программы просмотра изображений ਕੇਸਕੁਆਰੇਲ, но с наличием высокоуровнего абстрактного API и многочисленными улучшениями. Целевая аудитория: просмотрщики изображений, разработка игр, загрузка изображений в память для иных целей. Библиотека находится в стадии разработки, но уже пригодна для использования. Бинарная совместимость и совместимость исходного кода на данном этапе разработки не гарантируется.
ਫੀਚਰ:
Простая, компактная и быстрая библиотека, написанная на С без сторонних зависимостей (кроме кодеков);
Простой, понятный и в тоже время мощный API для всех нужд;
Чтение (и запись) изображений из файла, памяти или даже своего собственного источника данных;
Определение типа изображения по расширению файла, или по магическому числу;
Поддерживаемые на данный момент форматы: ਏਪੀਐਨਜੀ (чтение, только на Windows), JPEG (чтение, запись) PNG (чтение, запись).
Работа по добавлению новых форматов ведётся. KSquirrel-libs так или иначе поддерживал около 60 форматов, наиболее популярные форматы стоят в очереди первыми;
Операции чтения всегда могут выдавать пиксели в формате RGB и RGBA;
Некоторые кодеки могут выдавать пиксели в ещё большем списке форматов;
Большинство кодеков умеют выдавать также и исходные (SOURCE) пиксели. Это пригодится, например, тем, кто захочет получить полную информацию из CMYK- или YCCK-изображений;
ਆਈਸੀਸੀ ਪ੍ਰੋਫਾਈਲਾਂ ਨੂੰ ਪੜ੍ਹਨਾ ਅਤੇ ਲਿਖਣਾ;
Примеры на C, Qt, SDL;
ਸਮਰਥਿਤ ਪਲੇਟਫਾਰਮ:
Windows (installer), macOS (brew) и Linux (Debian).
Что SAIL не предоставляет:
Редактирование изображений;
Функции преобразования цветовых пространств кроме тех, что дают низлежащие кодеки (libjpeg и т.д.);
Функции управления цветом (применение ICC профилей и т.д.)
Продвинутый: «Я хочу загрузить этот анимированный GIF из памяти»
Глубоководный дайвер: «Я хочу загрузить этот анимированный GIF из памяти и иметь полный контроль над выбранными кодеками и форматом отдаваемых пикселей»
Технический дайвер: «Я хочу всё что выше, и мой собственный источник данных»
Прямые конкуренты из этой же области:
FreeImage
DevIL
SDL_Image
WIC
imlib2
Boost.GIL
gdk-pixbuf
Отличия от других библиотек:
Человеческий API с ожидаемыми сущностями — изображениями, палитрами и т.д.
Большинство кодеков умеют отдавать не только RGB/RGBA пиксели.
Большинство кодеков умеют отдавать исходные пиксели без преобразований в RGB.
Писать кодеки можно на любом языке, а также добавлять/удалять их без перекомпиляции всего проекта.
Сохранение информации об исходном изображении.
«Прощупывание» (probing) — получение информации об изображении без декодирования пиксельных данных.