MIT licenc alatt közzétett többplatformos képdekódoló könyvtár SAIL. A SAIL egy régóta nem támogatott képnézegetőből származó kodekek márkaváltása, C nyelven átírva Mókus, de magas szintű absztrakt API-val és számos fejlesztéssel. Célközönség: képnézegetők, játékfejlesztés, képek memóriába töltése egyéb célokra. A könyvtár fejlesztés alatt áll, de már használható. A bináris és a forráskód kompatibilitás ebben a fejlesztési szakaszban nem garantált.
Jellemzők:
Egy egyszerű, kompakt és gyors könyvtár C nyelven, harmadik féltől származó függőségek nélkül (kivéve kodekek);
Egyszerű, érthető és ugyanakkor hatékony API minden igényhez;
Kötések C++-hoz;
A képformátumokat dinamikusan betöltött kodekek támogatják;
Képek olvasása (és írása) fájlból, memóriából vagy akár saját adatforrásból;
A kép típusának meghatározása fájlkiterjesztés szerint vagy szerint mágikus szám;
Jelenleg támogatott formátumok: png (olvasás, csak Windows), JPEG (olvasás, írás) PNG (olvasás, írás).
Folyamatban van az új formátumok hozzáadásával kapcsolatos munka. A KSquirrel-libs körülbelül 60 formátumot támogatott így vagy úgy, a legnépszerűbb formátumok az elsők a sorban;
Az olvasási műveletek mindig képesek RGB és RGBA formátumú pixeleket kiadni;
Egyes kodekek még nagyobb formátumlistában képesek kiadni a képpontokat;
A legtöbb kodek SOURCE pixeleket is képes kiadni. Ez például azoknak hasznos, akik teljes információt szeretnének kapni a CMYK vagy YCCK képekből;
ICC profilok olvasása és írása;
Példák C, Qt, SDL nyelven;
Támogatott platformok:
Windows (telepítő), macOS (brew) és Linux (Debian).
Amit a SAIL nem biztosít:
Képszerkesztés;
A mögöttes kodekek által biztosítottaktól eltérő színtér-konverziós funkciók (libjpeg stb.);
Színkezelési funkciók (ICC profilok használata stb.)
Speciális: "A memóriából szeretném betölteni ezt az animált GIF-et"
Mélytengeri búvár: "Szeretném betölteni ezt az animált GIF-et a memóriából, és teljes mértékben irányítani szeretném a választott kodekeket és pixelkimenetet."
Technikai búvár: "Mindent akarok, ami fent van, és a saját adatforrásomat"
Közvetlen versenytársak azonos területről:
FreeImage
Ördög
SDL_Image
WIC
imlib2
Boost.GIL
gdk-pixbuf
Különbségek a többi könyvtárhoz képest:
Emberi API várt entitásokkal – képek, paletták stb.
A legtöbb kodek nem csak RGB/RGBA képpontokat képes kiadni.
A legtöbb kodek képes eredeti pixeleket kiadni RGB-be átalakítás nélkül.
Bármilyen nyelven írhat kodekeket, és hozzáadhatja/eltávolíthatja azokat anélkül, hogy a teljes projektet újrafordítaná.
Az eredeti kép adatainak megőrzése.
A „próbálás” az a folyamat, amelynek során információt nyerünk egy képről a pixeladatok dekódolása nélkül.