Wydanie biblioteki dekodowania obrazów SAIL 0.9.0-pre12

Opublikowano kilka znaczących aktualizacji biblioteki dekodowania obrazów SAIL, zapewniających przepisanie w języku C kodeków z dawno nieistniejącej przeglądarki obrazów KSquirrel, ale z abstrakcyjnym interfejsem API wysokiego poziomu i licznymi ulepszeniami. Biblioteka jest gotowa do użytku, ale wciąż jest udoskonalana. Zgodność plików binarnych i API nie jest jeszcze gwarantowana. Demonstracja.

Cechy żagla

  • Szybka i łatwa w użyciu biblioteka;
  • Napisane w C11 z powiązaniami z C++ 17;
  • Obsługa formatów obrazów jest realizowana za pomocą dynamicznie ładowanych kodeków, które można usuwać i dodawać niezależnie od strony klienta;
  • Odczyt z pliku, pamięci, źródeł własnych;
  • Obsługa obrazów wielostronicowych i animowanych;
  • Obsługa popularnych formatów nadal odbywa się przy użyciu odpowiednich bibliotek libjpeg, libpng itp.
  • Wieloplatformowość: Linux, Windows, macOS;
  • „Sondowanie” – uzyskiwanie informacji o obrazie bez dekodowania pikseli;
  • Nazwy istot ludzkich (bez FIMULTIBITMAP);
  • Czytanie i pisanie profili ICC;
  • Wysyła piksele RGBA lub BGRA;
  • Zwraca oryginalne piksele (na przykład CMYK), jeśli jest obsługiwane przez kodek;

Lista zmian od ostatniej publikacji:

  • API zostało znacznie ulepszone i uproszczone. Było: structail_context *context; SAIL_TRY(żagiel_init(&kontekst)); struktura żagla_image *image; znak bez znaku *image_pixels; SAIL_TRY(sail_read(ścieżka, kontekst, &obraz, (void **)&piksele_obrazu)); ...wolny(piksele_obrazu); żagiel_destroy_image(image);

    Teraz: struct żagl_image *image; SAIL_TRY(sail_read_file(path, &image); ... żaglowiec_destroy_image(image);

  • Dodano formaty BMP, GIF, TIFF;
  • Dostępność w VCPKG na wszystkich platformach z wyjątkiem UWP;
  • Opublikowano testy wydajności benchmarków;
  • Powiązanie C++ zostało przeniesione do C++ 17;
  • Funkcje alokacji pamięci zebrano w jednym miejscu, dzięki czemu można je łatwo zastąpić własnymi, jednak na chwilę obecną można to zrobić jedynie poprzez rekompilację;
  • Użytkownicy mogą teraz używać CMake find_package() do łączenia się z SAIL;
  • Dodano możliwość kompilacji statycznej (SAIL_STATIC=ON);
  • Dodano możliwość kompilacji wszystkich kodeków w jedną wspólną bibliotekę (SAIL_COMBINE_CODECS=ON);
  • Rozpoczęto prace nad dodaniem testów opartych na µnitach;

Zalecana metoda instalacji

  • Linux - dostępne są również reguły vcpkg i Debiana
  • Windows - vcpkg
  • macOS - napar

Źródło: opennet.ru

Dodaj komentarz