Izdanje biblioteke za dekodiranje slika SAIL 0.9.0-pre12

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

Dodajte komentar