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