MIT лицензиясы боюнча жарыяланган кайчылаш платформа сүрөттүн коддоо китепканасы SAIL. SAIL - C тилинде кайра жазылган, көптөн бери колдоого алынбаган сүрөт көрүүчүнүн кодектеринин ребрендинги. KSquirrel, бирок жогорку деңгээлдеги абстракттуу 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 профилдерин колдонуу ж.б.)
/*
* Бул жерде алынган пикселдерди иштетүү.
* Бул үчүн, сүрөт->туурасы, сүрөт->бийиктик, сүрөт->сапка_байт, колдонуңуз.
* жана сүрөт->пиксел_формат.
*/
/* Тазалоо */
бекер(сүрөт_пикселдери);
sail_destroy_image(сүрөт);
API деңгээлдеринин кыскача баяндамасы:
Newbie: "Мен жөн гана бул JPEG жүктөп алгым келет"
Өркүндөтүлгөн: "Мен бул анимацияланган GIFти эстутумдан жүктөгүм келет"
Терең деңизчи: "Мен бул анимацияланган GIFти эстутумдан жүктөм жана мен тандаган кодектерди жана пикселди толук көзөмөлдөгүм келет."
Техникалык суучул: "Мен жогорудагы нерселердин бардыгын жана өзүмдүн маалымат булагымды каалайм"
Ошол эле аймактан түз атаандаштар:
FreeImage
DevIL
SDL_Image
Сасык тумоо боюнча
imlib2
Boost.GIL
gdk-pixbuf
Башка китепканалардан айырмачылыктары:
Күтүлгөн объектилер менен адам API - сүрөттөр, палитралар ж.б.
Көпчүлүк кодектер RGB/RGBA пикселдеринен көптү чыгара алат.
Көпчүлүк кодектер оригиналдуу пикселдерди RGBге өзгөртпөстөн чыгара алышат.
Сиз кодектерди каалаган тилде жаза аласыз, ошондой эле аларды бүтүндөй долбоорду кайра компиляция кылбастан кошуп/жок кыла аласыз.
Түпнуска сүрөт тууралуу маалыматты сактаңыз.
"Зонддоо" - бул пикселдик маалыматтарды декоддоосуз элестүү жөнүндө маалымат алуу процесси.