Pagal MIT licenciją paskelbta kelių platformų vaizdo dekodavimo biblioteka SAIL. SAIL yra kodekų prekės ženklo keitimas iš ilgai nepalaikomos vaizdų peržiūros priemonės, perrašytas C K voverė, bet su aukšto lygio abstrakčia API ir daugybe patobulinimų. Tikslinė auditorija: vaizdų peržiūros priemonės, žaidimų kūrimas, vaizdų įkėlimas į atmintį kitiems tikslams. Biblioteka kuriama, bet jau tinkama naudoti. Šiame kūrimo etape negarantuojamas dvejetainio ir šaltinio kodo suderinamumas.
Savybės:
Paprasta, kompaktiška ir greita biblioteka, parašyta C kalba be priklausomybių nuo trečiųjų šalių (išskyrus kodekus);
Paprasta, suprantama ir tuo pačiu galinga API visiems poreikiams;
Įrišimai C++;
Vaizdo formatus palaiko dinamiškai įkeliami kodekai;
Skaityti (ir rašyti) vaizdus iš failo, atminties ar net savo duomenų šaltinio;
Vaizdo tipo nustatymas pagal failo plėtinį arba pagal magiškas skaičius;
Šiuo metu palaikomi formatai: png (skaityti, tik Windows), JPEG (skaityti, rašyti) PNG (skaityti, rašyti).
Šiuo metu vyksta naujų formatų įtraukimas. KSquirrel-libs vienaip ar kitaip palaikė apie 60 formatų, populiariausi formatai yra pirmoje eilėje;
Skaitymo operacijos visada gali išvesti pikselius RGB ir RGBA formatu;
Kai kurie kodekai gali išvesti pikselius dar didesniu formatų sąrašu;
Dauguma kodekų taip pat gali išvesti SOURCE pikselius. Tai naudinga, pavyzdžiui, tiems, kurie nori gauti visą informaciją iš CMYK ar YCCK vaizdų;
ICC profilių skaitymas ir rašymas;
C, Qt, SDL pavyzdžiai;
Palaikomos platformos:
Windows (diegimo programa), macOS (brew) ir Linux (Debian).
Ko SAIL nesuteikia:
Vaizdo redagavimas;
Spalvų erdvės konvertavimo funkcijos, išskyrus tas, kurias teikia pagrindiniai kodekai (libjpeg ir kt.);
Spalvų valdymo funkcijos (ICC profilių naudojimas ir kt.)
Paprasčiausias C dekodavimo pavyzdys:
struct sail_context *kontekstas;
SAIL_TRY(sail_init(&kontekstas));
struct sail_image *vaizdas;
nepasirašytas simbolis *vaizdo_pikseliai;
/*
* Čia apdorojami gauti pikseliai.
* Norėdami tai padaryti, naudokite image->width, image->height, image->bytes_per_line,
* ir image->pixel_format.
*/