Attēlu dekodēšanas bibliotēkas SAIL 0.9.0-pre12 izlaišana

Ir publicēti vairāki nozīmīgi SAIL attēlu dekodēšanas bibliotēkas atjauninājumi, kas nodrošina C pārrakstīšanu kodekiem no sen vairs neesošā KSquirrel attēlu skatītāja, bet ar augsta līmeņa abstraktu API un daudziem uzlabojumiem. Bibliotēka ir gatava lietošanai, taču tā joprojām tiek nepārtraukti pilnveidota. Binārā un API saderība vēl nav garantēta. Demonstrācija.

SAIL iezīmes

  • Ātra un viegli lietojama bibliotēka;
  • Rakstīts C11 ar iesējumiem uz C++17;
  • Attēlu formātu atbalsts tiek īstenots ar dinamiski ielādētiem kodekiem, kurus var noņemt un pievienot neatkarīgi no klienta puses;
  • Lasīšana no faila, atmiņas, pašu avotiem;
  • Atbalsts vairāku lappušu un animētiem attēliem;
  • Populāru formātu atbalsts joprojām tiek veikts, izmantojot atbilstošās bibliotēkas libjpeg, libpng utt.
  • Vairāku platformu: Linux, Windows, macOS;
  • “Zondēšana” - informācijas iegūšana par attēlu bez pikseļu dekodēšanas;
  • Cilvēku vienību nosaukumi (nav FIMULTIBITMAP);
  • Lasīt un rakstīt ICC profilus;
  • Nosūta RGBA vai BGRA pikseļus;
  • Atgriež sākotnējos pikseļus (piemēram, CMYK), ja to atbalsta kodeks;

Izmaiņu saraksts kopš pēdējās publikācijas:

  • API ir ievērojami uzlabota un vienkāršota. Bija: struct sail_context *konteksts; SAIL_TRY(sail_init(&konteksts)); struct sail_image *attēls; unsigned char *image_pixels; SAIL_TRY(sail_read(ceļš, konteksts, &attēls, (tukšs **)&attēla_pikseļi)); ... bezmaksas(attēls_pikseļi); sail_destroy_image(attēls);

    Tagad: struct sail_image *image; SAIL_TRY(sail_read_file(ceļš, &attēls); ... bura_iznīcināšanas_attēls(attēls);

  • Pievienoti BMP, GIF, TIFF formāti;
  • Pieejamība VCPKG visās platformās, izņemot UWP;
  • Publicēti etalonuzdevumu testi;
  • C++ saistīšana ir pārvietota uz C++17;
  • Atmiņas piešķiršanas funkcijas ir apkopotas vienuviet, lai tās varētu viegli aizstāt ar savām, taču šobrīd to var izdarīt tikai pārkompilējot;
  • Lietotāji tagad var izmantot CMake find_package(), lai savienotu SAIL;
  • Pievienota iespēja statiski kompilēt (SAIL_STATIC=ON);
  • Pievienota iespēja visus kodekus apkopot vienā kopējā bibliotēkā (SAIL_COMBINE_CODECS=ON);
  • Ir sākts darbs pie µnit balstītu testu pievienošanas;

Ieteicamā uzstādīšanas metode

  • Ir pieejami arī Linux - vcpkg, Debian noteikumi
  • Windows — vcpkg
  • macOS — brūvēt

Avots: opennet.ru

Pievieno komentāru