Kuvan dekoodauskirjaston SAIL 0.9.0-pre12 julkaisu

SAIL-kuvan dekoodauskirjastoon on julkaistu useita merkittäviä päivityksiä, jotka tarjoavat C-uudelleenkirjoituksen koodekkeille kauan poistuneesta KSquirrel-kuvakatseluohjelmasta, mutta korkean tason abstraktilla API:lla ja lukuisilla parannuksilla. Kirjasto on käyttövalmis, mutta sitä kehitetään edelleen jatkuvasti. Binaari- ja API-yhteensopivuutta ei vielä taata. Esittely.

SAILin ominaisuudet

  • Nopea ja helppokäyttöinen kirjasto;
  • Kirjoitettu kielellä C11 sidoksilla C++17;
  • Kuvamuotojen tuki toteutetaan dynaamisesti ladatuilla koodekeilla, jotka voidaan poistaa ja lisätä asiakaspuolelta riippumatta;
  • Lukeminen tiedostosta, muistista, omista lähteistä;
  • Tuki monisivuisille ja animoiduille kuville;
  • Suosittujen tiedostomuotojen tuki tapahtuu edelleen vastaavilla kirjastoilla libjpeg, libpng jne.
  • Monia alustoja: Linux, Windows, macOS;
  • "Tietää" - tietojen hankkiminen kuvasta ilman pikseleiden dekoodausta;
  • Ihmisen entiteettien nimet (ei FIMULTIBITMAP);
  • ICC-profiilien lukeminen ja kirjoittaminen;
  • Lähettää RGBA- tai BGRA-pikseleitä;
  • Palauttaa alkuperäiset pikselit (esimerkiksi CMYK), jos koodekki tukee sitä;

Luettelo viimeisimmän julkaisun jälkeen tehdyistä muutoksista:

  • Sovellusliittymää on parannettu ja yksinkertaistettu merkittävästi. Oli: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *kuva; unsigned char *image_pixels; SAIL_TRY(sail_read(polku, konteksti, &kuva, (void **)&kuva_pikseliä)); ...ilmainen(kuva_pikseliä); sail_detroy_image(image);

    Nyt: struct sail_image *image; SAIL_TRY(sail_read_file(polku, &kuva); ... purje_tuhoa_kuva(kuva);

  • Lisätty BMP-, GIF-, TIFF-muodot;
  • Saatavuus VCPKG:ssä kaikilla alustoilla paitsi UWP;
  • Suorituskykytestit julkaistu;
  • C++-sidonta on siirretty kohtaan C++17;
  • Muistinvarausfunktiot kerätään yhteen paikkaan, jotta ne voidaan helposti korvata omalla, mutta tällä hetkellä tämä voidaan tehdä vain kääntämällä uudelleen;
  • Käyttäjät voivat nyt käyttää CMake find_package():tä yhdistääkseen SAIL;
  • Lisätty mahdollisuus kääntää staattisesti (SAIL_STATIC=ON);
  • Lisätty mahdollisuus kääntää kaikki koodekit yhdeksi yhteiseksi kirjastoksi (SAIL_COMBINE_CODECS=ON);
  • Työ µnit-pohjaisten testien lisäämiseksi on alkanut;

Suositeltu asennustapa

  • Linux - vcpkg, Debianin säännöt ovat myös saatavilla
  • Windows - vcpkg
  • macOS - hautua

Lähde: opennet.ru

Lisää kommentti