Release av bildavkodningsbibliotek SAIL 0.9.0-pre12

Flera stora uppdateringar av SAIL-bildavkodningsbiblioteket har publicerats, vilket ger en C-omskrivning av codecs från den sedan länge nedlagda KSquirrel-bildvisaren, men med ett abstrakt API på hög nivå och många förbättringar. Biblioteket är klart att användas, men förbättras fortfarande kontinuerligt. Binär och API-kompatibilitet är ännu inte garanterad. Demonstration.

Egenskaper hos SAIL

  • Snabbt och lättanvänt bibliotek;
  • Skrivet i C11 med bindningar till C++17;
  • Stöd för bildformat implementeras av dynamiskt laddade codecs, som kan tas bort och läggas till oberoende av klientsidan;
  • Läsa från fil, minne, egna källor;
  • Stöd för flersidiga och animerade bilder;
  • Stöd för populära format görs fortfarande med motsvarande bibliotek libjpeg, libpng, etc.
  • Cross-platform: Linux, Windows, macOS;
  • "Probing" - få information om en bild utan att avkoda pixlar;
  • Mänskliga entitetsnamn (ingen FIMULTIBITMAP);
  • Läsa och skriva ICC-profiler;
  • Skickar RGBA- eller BGRA-pixlar;
  • Returnerar originalpixlar (till exempel CMYK) om de stöds av codec;

Lista över ändringar sedan senaste publicering:

  • API:et har förbättrats och förenklats avsevärt. Var: struct sail_context *kontext; SAIL_TRY(sail_init(&context)); struct sail_image *image; osignerad char *image_pixels; SAIL_TRY(sail_read(sökväg, sammanhang, &bild, (void **)&bildpixlar)); ... free(image_pixels); sail_destroy_image(bild);

    Nu: struct sail_image *image; SAIL_TRY(sail_read_file(sökväg, &image); ... sail_destroy_image(image);

  • Lade till BMP, GIF, TIFF-format;
  • Tillgänglighet i VCPKG på alla plattformar utom UWP;
  • Benchmark prestandatester publicerade;
  • C++-bindning har flyttats till C++17;
  • Minnesallokeringsfunktioner är samlade på ett ställe så att de enkelt kan ersättas med dina egna, men för närvarande kan detta bara göras genom att kompilera om;
  • Användare kan nu använda CMake find_package() för att ansluta SAIL;
  • Lade till möjligheten att statiskt kompilera (SAIL_STATIC=ON);
  • Lade till möjligheten att kompilera alla codecs till ett gemensamt bibliotek (SAIL_COMBINE_CODECS=ON);
  • Arbetet har påbörjats med att lägga till µnit-baserade tester;

Rekommenderad installationsmetod

  • Linux - vcpkg, Debianregler är också tillgängliga
  • Windows - vcpkg
  • macOS - brygg

Källa: opennet.ru

Lägg en kommentar