Under the MIT license published SAIL cross-platform image decoding library. SAIL is a C re-branding of codecs from a long-deprecated image viewer KSquirrel, but with a high-level abstract API and numerous improvements. Target Audience: Image viewers, game development, loading images into memory for other purposes. The library is under development, but is already usable. Binary and source code compatibility is not guaranteed at this stage of development.
Features:
A simple, compact and fast library written in C with no third-party dependencies (except for codecs);
Simple, clear and at the same time powerful API for all needs;
Bindings to C++;
Image formats are supported by dynamically loaded codecs;
Reading (and writing) images from a file, memory, or even your own data source;
Determining the type of image by file extension, or by magic number;
Currently supported formats: APNG (read, on Windows only), JPEG (read, write) PNG (read, write).
Work on adding new formats is underway. KSquirrel-libs somehow supported about 60 formats, the most popular formats are the first in the queue;
Read operations can always return RGB and RGBA pixels;
Some codecs can output pixels in an even larger list of formats;
Most codecs can also output source (SOURCE) pixels. This is useful, for example, for those who want to get complete information from CMYK or YCCK images;
Reading and writing ICC profiles;
Examples in C, Qt, SDL;
Supported platforms:
Windows (installer), macOS (brew) and Linux (Debian).
What SAIL does not provide:
Image editing;
Functions for converting color spaces other than those provided by underlying codecs (libjpeg, etc.);
Color management functions (applying ICC profiles, etc.)