Objavljeno je nekoliko značajnih ažuriranja SAIL biblioteke za dekodiranje slika, pružajući C prepisivanje kodeka iz davno nepostojećeg KSquirrel preglednika slika, ali s apstraktnim API-jem visoke razine i brojnim poboljšanjima. Knjižnica je spremna za korištenje, ali se i dalje kontinuirano poboljšava. Binarna i API kompatibilnost još nije zajamčena. Demonstracija.
Značajke SAIL-a
- Knjižnica brza i jednostavna za korištenje;
- Napisano u C11 s vezama na C++17;
- Podršku za slikovne formate implementiraju dinamički učitani kodeci, koji se mogu uklanjati i dodavati neovisno o strani klijenta;
- Čitanje iz datoteke, memorije, vlastitih izvora;
- Podrška za više stranica i animirane slike;
- Podrška za popularne formate i dalje se vrši korištenjem odgovarajućih biblioteka libjpeg, libpng itd.
- Više platformi: Linux, Windows, macOS;
- "Sondiranje" - dobivanje informacija o slici bez dekodiranja piksela;
- Imena ljudskih entiteta (nema FIMULTIBITMAP);
- Čitanje i pisanje ICC profila;
- Šalje RGBA ili BGRA piksele;
- Vraća izvorne piksele (na primjer, CMYK) ako to podržava kodek;
Popis promjena od zadnje objave:
- API je značajno poboljšan i pojednostavljen. Bilo je: struct sail_context *kontekst; SAIL_TRY(sail_init(&context)); struct sail_image *slika; unsigned char *pikseli_slike; SAIL_TRY(sail_read(path, context, &image, (void **)&image_pixels)); ... besplatno(pikseli_slike); jedriti_uništiti_sliku(slika);
Sada: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); ... sail_destroy_image(image);
- Dodani BMP, GIF, TIFF formati;
- Dostupnost u VCPKG na svim platformama osim UWP;
- Objavljeni referentni testovi performansi;
- C++ vezanje je premješteno na C++17;
- Funkcije dodjele memorije prikupljene su na jednom mjestu tako da se mogu lako zamijeniti vlastitima, ali trenutno se to može učiniti samo rekompilacijom;
- Korisnici sada mogu koristiti CMake find_package() za povezivanje SAIL-a;
- Dodana mogućnost statičkog prevođenja (SAIL_STATIC=ON);
- Dodana mogućnost kompajliranja svih kodeka u jednu zajedničku biblioteku (SAIL_COMBINE_CODECS=ON);
- Počeo je rad na dodavanju testova temeljenih na µnit;
Preporučeni način postavljanja
- Linux - vcpkg, Debian pravila su također dostupna
- Windows - vcpkg
- macOS - kuhati
Izvor: opennet.ru