MIT litsenziyasi ostida e'lon qilindi o'zaro platformali tasvirni dekodlash kutubxonasi SAIL. SAIL - bu uzoq vaqt davomida qo'llab-quvvatlanmaydigan tasvirni ko'rish dasturidan C tilida qayta yozilgan kodeklarning rebrendingidir. KSincap, lekin yuqori darajadagi mavhum API va ko'plab yaxshilanishlar bilan. Maqsadli auditoriya: tasvir tomoshabinlari, o'yinni ishlab chiqish, boshqa maqsadlar uchun tasvirlarni xotiraga yuklash. Kutubxona ishlab chiqilmoqda, lekin allaqachon foydalanish mumkin. Rivojlanishning ushbu bosqichida ikkilik va manba kodining muvofiqligi kafolatlanmaydi.
Xususiyatlar:
Oddiy, ixcham va tezkor kutubxona C tilida uchinchi shaxslarga bog'liqliksiz (kodeklardan tashqari);
Oddiy, tushunarli va ayni paytda barcha ehtiyojlar uchun kuchli API;
C++ uchun ulanishlar;
Tasvir formatlari dinamik yuklangan kodeklar tomonidan qo'llab-quvvatlanadi;
Fayl, xotira yoki hatto o'zingizning ma'lumotlar manbangizdan rasmlarni o'qing (va yozing);
Tasvir turini fayl kengaytmasi yoki bo'yicha aniqlash sehrli raqam;
Hozirda qo'llab-quvvatlanadigan formatlar: png (o'qish, faqat Windows), JPEG (o'qish, yozish) PNG (o'qish, yozish).
Yangi formatlarni qoβshish ustida ish olib borilmoqda. KSquirrel-libs 60 ga yaqin formatlarni u yoki bu tarzda qo'llab-quvvatladi, eng mashhur formatlar birinchi navbatda;
O'qish operatsiyalari har doim piksellarni RGB va RGBA formatida chiqarishi mumkin;
Ba'zi kodeklar piksellarni yanada kattaroq formatlar ro'yxatida chiqarishi mumkin;
Aksariyat kodeklar SOURCE piksellarini ham chiqarishi mumkin. Bu, masalan, CMYK yoki YCCK tasvirlaridan to'liq ma'lumot olishni istaganlar uchun foydalidir;
ICC profillarini o'qish va yozish;
C, Qt, SDL dagi misollar;
Qo'llab -quvvatlanadigan platformalar:
Windows (o'rnatuvchi), macOS (brew) va Linux (Debian).
SAIL nimani ta'minlamaydi:
Rasmni tahrirlash;
Asosiy kodeklar (libjpeg va h.k.) tomonidan taqdim etilganlardan boshqa ranglar maydonini aylantirish funksiyalari;
Rangni boshqarish funktsiyalari (ICC profillaridan foydalanish va boshqalar)
/*
* Bu erda qabul qilingan piksellarni qayta ishlang.
* Buning uchun tasvir->kenglik, tasvir->balandlik, tasvir->har bir_satrga bayt,
* va tasvir->piksel_format.
*/
/* Tozalash */
bepul (tasvir_piksel);
suzib_yo'q qilish_tasvir (tasvir);
API darajalarining qisqacha tavsifi:
Yangi boshlovchi: "Men shu JPEGni yuklab olmoqchiman"
Murakkab: "Men ushbu animatsion GIFni xotiradan yuklamoqchiman"
Chuqur dengizchi: "Men ushbu jonlantirilgan GIF-ni xotiradan yuklamoqchiman va o'zim tanlagan kodeklar va piksel chiqishi ustidan to'liq nazoratga ega bo'lmoqchiman."
Texnik g'avvos: "Men yuqoridagi hamma narsani va o'z ma'lumotlar manbamni xohlayman"
Xuddi shu hududdagi to'g'ridan-to'g'ri raqobatchilar:
FreeImage
Shayton
SDL_Image
WIC
imlib2
Boost.GIL
gdk-pixbuf
Boshqa kutubxonalardan farqlari:
Kutilayotgan ob'ektlar bilan inson API - tasvirlar, palitralar va boshqalar.
Aksariyat kodeklar faqat RGB/RGBA piksellaridan ko'proq narsani chiqarishi mumkin.
Aksariyat kodeklar RGB ga o'tkazmasdan asl piksellarni chiqarishi mumkin.
Siz har qanday tilda kodek yozishingiz mumkin, shuningdek, butun loyihani qayta kompilyatsiya qilmasdan ularni qo'shishingiz/o'chirishingiz mumkin.
Asl rasm haqidagi ma'lumotlarni saqlang.
"Probing" - bu piksel ma'lumotlarini dekodlashsiz tasvir haqida ma'lumot olish jarayoni.