A SAIL 0.9.0-pre12 képdekódoló könyvtár kiadása

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

Hozzászólás