Kujutise dekodeerimise teegi SAIL 0.9.0-pre12 väljalase

SAIL-i kujutiste dekodeerimise teegis on avaldatud mitmeid olulisi uuendusi, mis pakuvad kodekite C-ümberkirjutamist juba ammu mittetoiminud KSquirreli pildivaaturist, kuid koos kõrgetasemelise abstraktse API-ga ja paljude täiustustega. Raamatukogu on kasutamiseks valmis, kuid seda täiendatakse jätkuvalt. Binaarne ja API ühilduvus pole veel garanteeritud. Demonstratsioon.

SAIL-i omadused

  • Kiire ja lihtne kasutada raamatukogu;
  • Kirjutatud C11-s koos sidemetega C++17-le;
  • Pildivormingute tugi on realiseeritud dünaamiliselt laaditud koodekitega, mida saab eemaldada ja lisada kliendi poolest sõltumatult;
  • Lugemine failist, mälust, oma allikatest;
  • Mitmeleheküljeliste ja animeeritud piltide tugi;
  • Populaarsete vormingute tugi toimub endiselt vastavate teekide libjpeg, libpng jne abil.
  • Platvormidevaheline: Linux, Windows, macOS;
  • "Probing" - pildi kohta teabe hankimine ilma piksleid dekodeerimata;
  • Inimüksuste nimed (FIMULTIBITMAP puudub);
  • ICC profiilide lugemine ja kirjutamine;
  • Saadab RGBA või BGRA piksleid;
  • Tagastab algsed pikslid (näiteks CMYK), kui koodek seda toetab;

Pärast viimast avaldamist tehtud muudatuste loend:

  • API-d on oluliselt täiustatud ja lihtsustatud. Oli: struct sail_context *kontekst; SAIL_TRY(sail_init(&kontekst)); struct sail_image *pilt; unsigned char *image_pixels; SAIL_TRY(sail_read(tee, kontekst, &pilt, (void **)&kujutise_pikslid)); ... vaba(pildi_pikslid); sail_destroy_image(pilt);

    Nüüd: struct sail_image *image; SAIL_TRY(sail_read_file(tee, &pilt); ... purje_hävitamise_pilt(pilt);

  • Lisatud BMP, GIF, TIFF formaadid;
  • Saadavus VCPKG-s kõigil platvormidel, välja arvatud UWP;
  • Avaldatud tulemuslikkuse võrdlustestid;
  • C++ sidumine on viidud C++17;
  • Mälu eraldamise funktsioonid on koondatud ühte kohta, et neid saaks hõlpsasti enda omadega asendada, kuid hetkel saab seda teha vaid ümberkompileerimise teel;
  • Kasutajad saavad nüüd kasutada SAIL-i ühendamiseks kasutada CMake find_package().
  • Lisatud staatilise kompileerimise võimalus (SAIL_STATIC=ON);
  • Lisatud võimalus kompileerida kõik koodekid üheks ühiseks teegiks (SAIL_COMBINE_CODECS=ON);
  • Töö µnitipõhiste testide lisamisega on alanud;

Soovitatav paigaldusviis

  • Linux - vcpkg, saadaval on ka Debiani reeglid
  • Windows - vcpkg
  • macOS – pruulima

Allikas: opennet.ru

Lisa kommentaar