Release van beelddecoderingsbibliotheek SAIL 0.9.0-pre12

Er zijn verschillende belangrijke updates van de SAIL-beelddecoderingsbibliotheek gepubliceerd, die een C-herschrijving van de codecs van de lang ter ziele gegane KSquirrel-beeldviewer bieden, maar met een abstracte API op hoog niveau en talrijke verbeteringen. De bibliotheek is klaar voor gebruik, maar wordt nog steeds continu verbeterd. Binaire en API-compatibiliteit is nog niet gegarandeerd. Demonstratie.

Kenmerken van SAIL

  • Snelle en eenvoudig te gebruiken bibliotheek;
  • Geschreven in C11 met bindingen naar C++17;
  • Ondersteuning voor afbeeldingsformaten wordt geïmplementeerd door dynamisch geladen codecs die onafhankelijk van de clientzijde kunnen worden verwijderd en toegevoegd;
  • Lezen uit bestand, geheugen, eigen bronnen;
  • Ondersteuning voor afbeeldingen met meerdere pagina's en animaties;
  • Ondersteuning voor populaire formaten wordt nog steeds gedaan met behulp van de overeenkomstige bibliotheken libjpeg, libpng, enz.
  • Cross-platform: Linux, Windows, macOS;
  • "Probing" - informatie verkrijgen over een afbeelding zonder pixels te decoderen;
  • Namen van menselijke entiteiten (geen FIMULTIBITMAP);
  • ICC-profielen lezen en schrijven;
  • Verzendt RGBA- of BGRA-pixels;
  • Retourneert originele pixels (bijvoorbeeld CMYK) indien ondersteund door de codec;

Lijst met wijzigingen sinds de laatste publicatie:

  • De API is aanzienlijk verbeterd en vereenvoudigd. Was: struct sail_context *context; SAIL_TRY(zeil_init(&context)); struct zeil_image *image; niet-ondertekende char *image_pixels; SAIL_TRY(sail_read(pad, context, &afbeelding, (leegte **)&afbeeldingspixels)); ...vrij(afbeelding_pixels); sail_destroy_image(afbeelding);

    Nu: struct sail_image *image; SAIL_TRY(zeil_leesbestand(pad, &afbeelding); ... sail_destroy_image(afbeelding);

  • BMP-, GIF- en TIFF-formaten toegevoegd;
  • Beschikbaarheid in VCPKG op alle platforms behalve UWP;
  • Benchmark prestatietests gepubliceerd;
  • C++-binding is verplaatst naar C++17;
  • Geheugentoewijzingsfuncties worden op één plek verzameld, zodat ze gemakkelijk kunnen worden vervangen door uw eigen functies, maar op dit moment kan dit alleen worden gedaan door opnieuw te compileren;
  • Gebruikers kunnen nu CMake find_package() gebruiken om SAIL te verbinden;
  • De mogelijkheid toegevoegd om statisch te compileren (SAIL_STATIC=ON);
  • De mogelijkheid toegevoegd om alle codecs in één gemeenschappelijke bibliotheek te compileren (SAIL_COMBINE_CODECS=ON);
  • Er is begonnen met het toevoegen van op µnit gebaseerde tests;

Aanbevolen installatiemethode

  • Linux - vcpkg, Debian-regels zijn ook beschikbaar
  • Windows - vcpkg
  • macOS - brouwen

Bron: opennet.ru

Voeg een reactie