Za knjižnico za dekodiranje slik SAIL je bilo izdanih več pomembnih posodobitev. Ponuja prepisano različico kodekov iz dolgo ukinjenega pregledovalnika slik KSquirrel v jeziku C, vendar z visokonivojskim abstraktnim API-jem in številnimi izboljšavami. Knjižnica je pripravljena za uporabo, vendar se še vedno nenehno izboljšuje. Združljivost binarnih datotek in API-jev še ni zagotovljena. Demo.
Značilnosti SAIL-a
- Hitra in enostavna knjižnica;
- Napisano v C11 z vezavami na C++17;
- Podpora za slikovne formate je implementirana z uporabo dinamično naloženih kodekov, ki jih je mogoče neodvisno odstraniti in dodati s strani odjemalca;
- Branje iz datoteke, pomnilnika, lastnih virov;
- Podpora za večstranske in animirane slike;
- Podpora za priljubljene formate je še vedno dosežena z uporabo ustreznih knjižnic libjpeg, libpng itd.
- Medplatformsko: Linux, Windows, macOS;
- Sondiranje je postopek pridobivanja informacij o sliki brez dekodiranja slikovnih pik;
- Človeška imena entitet (brez FIMULTIBITMAP);
- Branje in pisanje ICC profilov;
- Izhodi RGBA ali BGRA slikovnih pik;
- Vrne originalne slikovne pike (npr. CMYK), če jih kodek podpira;
Seznam sprememb od zadnje objave:
- API je bil znatno izboljšan in poenostavljen. Prej: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *image; unsigned char *image_pixels; SAIL_TRY(sail_read(path, context, &image, (void **)&image_pixels)); ...free(image_pixels); sail_destroy_image(image);
Sedaj: struct sail_image *image; SAIL_TRY(sail_read_file(pot, &image); ... sail_destroy_image(image);
- Dodani formati BMP, GIF, TIFF;
- Razpoložljivost v VCPKG na vseh platformah razen UWP;
- Objavljena merila uspešnosti;
- Vezava C++ je bila preseljena v C++17;
- Funkcije za dodeljevanje pomnilnika so zbrane na enem mestu, tako da jih je mogoče enostavno zamenjati s svojimi, vendar je to trenutno mogoče storiti le s ponovnim prevajanjem;
- Uporabniki lahko zdaj uporabijo CMake find_package() za vključitev SAIL;
- Dodana možnost statičnega prevajanja (SAIL_STATIC=ON);
- Dodana možnost prevajanja vseh kodekov v eno skupno knjižnico (SAIL_COMBINE_CODECS=ON);
- Začelo se je delo na dodajanju testov, ki temeljijo na µnit;
Priporočena metoda namestitve
- Linux — vcpkg, na voljo tudi Debian pravila
- Windows — vcpkg
- macOS — pivo
Vir: opennet.ru
