Számos jelentős frissítést tettek közzé a SAIL képdekódoló könyvtárhoz, amelyek a régóta nem létező KSquirrel képnézegető kodekeinek C átírását teszik lehetővé, de magas szintű absztrakt API-val és számos fejlesztéssel. A könyvtár használatra kész, de még mindig folyamatosan fejlesztjük. A bináris és API-kompatibilitás még nem garantált. Demonstráció.
A SAIL jellemzői
- Gyors és könnyen használható könyvtár;
- C11-ben írva, C++17-hez kötéssel;
- A képformátumok támogatását dinamikusan betöltött kodekek valósítják meg, amelyek az ügyféloldaltól függetlenül eltávolíthatók és hozzáadhatók;
- Olvasás fájlból, memóriából, saját forrásból;
- Többoldalas és animált képek támogatása;
- A népszerű formátumok támogatása továbbra is a megfelelő libjpeg, libpng stb. könyvtárak használatával történik.
- Több platformon: Linux, Windows, macOS;
- „Szondázás” - információszerzés egy képről pixelek dekódolása nélkül;
- Emberi entitások nevei (nincs FIMULTIBITMAP);
- ICC profilok olvasása és írása;
- RGBA vagy BGRA pixeleket küld;
- Eredeti képpontokat (például CMYK) ad vissza, ha a kodek támogatja;
A legutóbbi megjelenés óta történt változások listája:
- Az API jelentősen javult és egyszerűsödött. Volt: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *image; unsigned char *image_pixels; SAIL_TRY(sail_read(útvonal, kontextus, &kép, (void **)&kép_pixel)); ...szabad(kép_pixelek); sail_destroy_image(image);
Most: struct sail_image *image; SAIL_TRY(sail_read_file(útvonal, &kép); ... vitorla_pusztítása_kép(kép);
- Hozzáadott BMP, GIF, TIFF formátumok;
- Elérhetőség VCPKG-ben az UWP kivételével minden platformon;
- Összehasonlító teljesítménytesztek közzététele;
- A C++-kötés átkerült a C++17-be;
- A memóriafoglalási függvények egy helyre vannak gyűjtve, így könnyen lecserélhetők a sajátunkra, de ez jelenleg csak újrafordítással lehetséges;
- A felhasználók mostantól a CMake find_package() segítségével kapcsolhatják össze a SAIL-t;
- Statikus fordítási lehetőség hozzáadva (SAIL_STATIC=ON);
- Hozzáadtuk az összes kodek egyetlen közös könyvtárba való fordításának lehetőségét (SAIL_COMBINE_CODECS=ON);
- Megkezdődött a munka a µnit-alapú tesztek hozzáadásával;
Javasolt telepítési mód
- Linux - vcpkg, Debian szabályok is elérhetők
- Windows - vcpkg
- macOS - sör
Forrás: opennet.ru