Bylo publikováno několik velkých aktualizací knihovny pro dekódování obrázků SAIL, které poskytují přepsání C kodeků z dávno zaniklého prohlížeče obrázků KSquirrel, ale s abstraktním API na vysoké úrovni a četnými vylepšeními. Knihovna je připravena k použití, ale stále se neustále vylepšuje. Binární a API kompatibilita zatím není zaručena. Demonstrace.
Vlastnosti SAIL
- Rychlá a snadno použitelná knihovna;
- Napsáno v C11 s vazbami na C++17;
- Podpora obrazových formátů je realizována dynamicky načítanými kodeky, které lze odebírat a přidávat nezávisle na straně klienta;
- Čtení ze souboru, paměti, vlastních zdrojů;
- Podpora pro vícestránkové a animované obrázky;
- Podpora populárních formátů se stále provádí pomocí odpovídajících knihoven libjpeg, libpng atd.
- Víceplatformní: Linux, Windows, macOS;
- „Probing“ - získávání informací o obrázku bez dekódování pixelů;
- Jména lidských entit (bez FIMULTIBITMAP);
- Čtení a zápis ICC profilů;
- Odesílá RGBA nebo BGRA pixely;
- Vrátí původní obrazové body (například CMYK), pokud to kodek podporuje;
Seznam změn od poslední publikace:
- API bylo výrazně vylepšeno a zjednodušeno. Bylo: struct sail_context *context; SAIL_TRY(sail_init(&kontext)); struct sail_image *obrazek; unsigned char *image_pixels; SAIL_TRY(sail_read(cesta, kontext, &obrazek, (void **)&obrazkove_pixely)); ... free(image_pixels); sail_destroy_image(image);
Nyní: struct sail_image *image; SAIL_TRY(sail_read_file(cesta, &obrazek); ... plachta_destroy_image(obrazek);
- Přidány formáty BMP, GIF, TIFF;
- Dostupnost ve VCPKG na všech platformách kromě UWP;
- Zveřejněny srovnávací testy výkonu;
- Vazba C++ byla přesunuta do C++17;
- Funkce alokace paměti jsou shromážděny na jednom místě, takže je lze snadno nahradit vlastními, ale v tuto chvíli to lze provést pouze rekompilací;
- Uživatelé nyní mohou použít CMake find_package() k připojení SAIL;
- Přidána možnost statické kompilace (SAIL_STATIC=ON);
- Přidána možnost zkompilovat všechny kodeky do jedné společné knihovny (SAIL_COMBINE_CODECS=ON);
- Začaly práce na přidávání testů na bázi µnit;
Doporučený způsob instalace
- Linux - vcpkg, pravidla Debianu jsou také k dispozici
- Windows - vcpkg
- macOS - vařit
Zdroj: opennet.ru