Rilascio della libreria di decodifica delle immagini SAIL 0.9.0-pre12

Sono stati pubblicati diversi aggiornamenti importanti alla libreria di decodifica delle immagini SAIL, fornendo una riscrittura in C dei codec del visualizzatore di immagini KSquirrel da tempo defunto, ma con un'API astratta di alto livello e numerosi miglioramenti. La libreria è pronta per l'uso, ma viene ancora continuamente migliorata. La compatibilità binaria e API non è ancora garantita. Dimostrazione.

Caratteristiche di VELA

  • Libreria veloce e facile da usare;
  • Scritto in C11 con collegamenti a C++17;
  • Il supporto per i formati immagine è implementato da codec caricati dinamicamente, che possono essere rimossi e aggiunti indipendentemente dal lato client;
  • Lettura da file, memoria, fonti proprie;
  • Supporto per immagini multipagina e animate;
  • Il supporto per i formati più diffusi viene ancora effettuato utilizzando le librerie corrispondenti libjpeg, libpng, ecc.
  • Multipiattaforma: Linux, Windows, macOS;
  • "Sondaggio": ottenere informazioni su un'immagine senza decodificare i pixel;
  • Nomi di entità umane (no FIMULTIBITMAP);
  • Lettura e scrittura di profili ICC;
  • Invia pixel RGBA o BGRA;
  • Restituisce i pixel originali (ad esempio CMYK) se supportato dal codec;

Elenco delle modifiche dall'ultima pubblicazione:

  • L'API è stata notevolmente migliorata e semplificata. Era: struct sail_context *context; SAIL_TRY(sail_init(&contesto)); struttura sail_image *immagine; carattere senza segno *image_pixels; SAIL_TRY(sail_read(percorso, contesto, &immagine, (void **)&immagine_pixel)); ... libero(pixel_immagine); sail_destroy_image(immagine);

    Ora: struct sail_image *image; SAIL_TRY(sail_read_file(percorso, &immagine); ... sail_destroy_image(immagine);

  • Aggiunti formati BMP, GIF, TIFF;
  • Disponibilità in VCPKG su tutte le piattaforme tranne UWP;
  • Test prestazionali benchmark pubblicati;
  • L'associazione C++ è stata spostata in C++17;
  • Le funzioni di allocazione della memoria sono raccolte in un unico posto in modo che possano essere facilmente sostituite con le proprie, ma al momento ciò può essere fatto solo tramite ricompilazione;
  • Gli utenti ora possono utilizzare CMake find_package() per connettere SAIL;
  • Aggiunta la possibilità di compilare staticamente (SAIL_STATIC=ON);
  • Aggiunta la possibilità di compilare tutti i codec in una libreria comune (SAIL_COMBINE_CODECS=ON);
  • È iniziato il lavoro per aggiungere test basati su µnit;

Metodo di installazione consigliato

  • Sono disponibili anche Linux: vcpkg e regole Debian
  • Windows - vcpkg
  • macOS: prepara

Fonte: opennet.ru

Aggiungi un commento