MIT лицензиясы бойынша жарияланған кросс-платформалық кескінді декодтау кітапханасы SAIL. SAIL — C тілінде қайта жазылған ұзақ уақыт бойы қолдау көрсетілмейтін кескінді қарау құралының кодектерінің ребрендингі. Kтиін, бірақ жоғары деңгейлі дерексіз API және көптеген жақсартулармен. Мақсатты аудитория: суретті көрушілер, ойын әзірлеу, басқа мақсаттар үшін суреттерді жадқа жүктеу. Кітапхана әзірлену үстінде, бірақ қазірдің өзінде пайдалануға жарамды. Дамудың осы кезеңінде екілік және бастапқы кодтың үйлесімділігіне кепілдік берілмейді.
Ерекшеліктер:
Үшінші тарапқа тәуелділіксіз C тілінде жазылған қарапайым, ықшам және жылдам кітапхана (кодектерден басқа);
Қарапайым, түсінікті және сонымен бірге барлық қажеттіліктерге арналған қуатты API;
C++ үшін байланыстырулар;
Кескін пішімдеріне динамикалық жүктелген кодектер қолдау көрсетеді;
Файлдан, жадтан немесе тіпті жеке деректер көзінен кескіндерді оқу (және жазу);
Кескін түрін файл кеңейтімі бойынша немесе бойынша анықтау сиқырлы сан;
Қазіргі уақытта қолдау көрсетілетін форматтар: png (оқу, тек Windows), JPEG (оқу, жазу) PNG (оқу, жазу).
Жаңа форматтарды қосу жұмыстары жүргізілуде. KSquirrel-libs 60-қа жуық пішімдерді қандай да бір жолмен қолдады, ең танымал форматтар бірінші кезекте;
Оқу операциялары әрқашан RGB және RGBA пішіміндегі пикселдерді шығара алады;
Кейбір кодектер пикселдерді пішімдердің одан да үлкен тізімінде шығара алады;
Көптеген кодектер SOURCE пикселдерін де шығара алады. Бұл, мысалы, CMYK немесе YCCK кескіндерінен толық ақпарат алғысы келетіндер үшін пайдалы;
ICC профильдерін оқу және жазу;
C, Qt, SDL мысалдары;
Қолдау көрсетілетін платформалар:
Windows (орнатқыш), macOS (brew) және Linux (Debian).
SAIL нені қамтамасыз етпейді:
Суретті өңдеу;
Негізгі кодектер (libjpeg, т.б.) қамтамасыз ететіндерден басқа түс кеңістігін түрлендіру функциялары;
Түстерді басқару функциялары (ICC профильдерін пайдалану және т.б.)
/*
* Мұнда қабылданған пикселдерді өңдеңіз.
* Ол үшін сурет->ені, сурет->биіктік, сурет->әр_жолға_байт,
* және сурет->пиксель_пішімі.
*/
/* Жинап қою */
бос (сурет_пиксельдері);
желкенді_жою_сурет(сурет);
API деңгейлерінің қысқаша сипаттамасы:
Жаңадан келген: «Мен бұл JPEG файлын жүктеп алғым келеді»
Жетілдірілген: «Мен бұл анимациялық GIF файлын жадтан жүктегім келеді»
Терең теңіздегі сүңгуір: «Мен осы анимациялық GIF-ті жадтан жүктеп алғым келеді және мен таңдаған кодектер мен пиксельдік шығыстарды толық басқарғым келеді.»
Техникалық сүңгуір: «Мен жоғарыдағының барлығын және өзімнің деректер көзімді қалаймын»
Бір аймақтағы тікелей бәсекелестер:
FreeImage
DevIL
SDL_Image
WIC
imlib2
Boost.GIL
gdk-pixbuf
Басқа кітапханалардан айырмашылығы:
Күтілетін нысандары бар адам API - кескіндер, палитралар және т.б.
Көптеген кодектер тек RGB/RGBA пикселдерінен көбірек шығара алады.
Көптеген кодектер бастапқы пикселдерді RGB түрлендірусіз шығара алады.
Сіз кодектерді кез келген тілде жаза аласыз, сонымен қатар оларды бүкіл жобаны қайта құрастырмай-ақ қосуға/жоюға болады.
Түпнұсқа сурет туралы ақпаратты сақтаңыз.
«Зондтау» - пиксель деректерін декодтаусыз кескін туралы ақпаратты алу процесі.