Objavljeno je nekoliko velikih ažuriranja SAIL biblioteke za dekodiranje slika, pružajući C prepisivanje kodeka iz davno nepostojećeg KSquirrel pregledača slika, ali sa apstraktnim API-jem visokog nivoa i brojnim poboljšanjima. Biblioteka je spremna za upotrebu, ali se i dalje kontinuirano poboljšava. Binarna i API kompatibilnost još nije zajamčena. Demonstracija.
Karakteristike SAIL-a
- Brza i jednostavna biblioteka za korištenje;
- Napisano na C11 sa vezama za C++17;
- Podršku za formate slika implementiraju dinamički učitani kodeci, koji se mogu ukloniti i dodati nezavisno od strane klijenta;
- Čitanje iz datoteke, memorije, vlastitih izvora;
- Podrška za višestrane i animirane slike;
- Podrška za popularne formate se i dalje vrši pomoću odgovarajućih biblioteka libjpeg, libpng, itd.
- Više platformi: Linux, Windows, macOS;
- “Probiranje” - dobijanje informacija o slici bez dekodiranja piksela;
- Imena ljudskih entiteta (bez FIMULTIBITMAPA);
- Čitanje i pisanje ICC profila;
- Šalje RGBA ili BGRA piksele;
- Vraća originalne piksele (na primjer, CMYK) ako ih kodek podržava;
Lista promjena od posljednjeg objavljivanja:
- API je značajno poboljšan i pojednostavljen. Bilo je: struct sail_context *context; SAIL_TRY(sail_init(&kontekst)); struct sail_image *image; unsigned char *image_pixels; SAIL_TRY(sail_read(put, kontekst, &image, (void **)&image_pixels)); ...slobodno(pikseli_slika); sail_destroy_image(slika);
Sada: struct sail_image *image; SAIL_TRY(sail_read_file(put, &image); ... sail_destroy_image(slika);
- Dodani BMP, GIF, TIFF formati;
- Dostupnost u VCPKG na svim platformama osim UWP;
- Objavljeni testovi performansi;
- C++ povezivanje je prebačeno na C++17;
- Funkcije dodjele memorije su sakupljene na jednom mjestu tako da se mogu lako zamijeniti vašim, ali trenutno se to može učiniti samo ponovnim kompajliranjem;
- Korisnici sada mogu koristiti CMake find_package() za povezivanje SAIL-a;
- Dodata mogućnost statičkog kompajliranja (SAIL_STATIC=ON);
- Dodata mogućnost kompajliranja svih kodeka u jednu zajedničku biblioteku (SAIL_COMBINE_CODECS=ON);
- Počeo je rad na dodavanju testova zasnovanih na µnit;
Preporučeni način ugradnje
- Linux - vcpkg, Debian pravila su također dostupna
- Windows - vcpkg
- macOS - brew
izvor: opennet.ru