Flera viktiga uppdateringar har publicerats till SAIL-bildavkodningsbiblioteket, vilket ger en omskriven C-ommÀrkning 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.
Funktioner hos SAIL
- Snabbt och lÀttanvÀnt bibliotek;
- Skrivet i C11 med bindningar till C++17;
- Stöd för bildformat implementeras med 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 hjÀlp av motsvarande bibliotek libjpeg, libpng, etc.
- Plattformsoberoende: Linux, Windows, macOS;
- Probing Àr processen att erhÄlla information om en bild utan att avkoda pixlar;
- MÀnskliga namn pÄ entiteter (ingen FIMULTIBITMAP);
- LĂ€sa och skriva ICC-profiler;
- Matar ut RGBA- eller BGRA-pixlar;
- Returnerar ursprungliga pixlar (t.ex. CMYK) om det stöds av kodeken;
Lista över Àndringar sedan senaste publiceringen:
- AvsevÀrt förbÀttrat och förenklat API. Var: struct sail_context *kontext; SAIL_TRY(sail_init(&kontext)); struktur segel_bild *bild; osignerad char *bildpixlar; SAIL_TRY(sail_read(sökvÀg, kontext, &bild, (void **)&bildpixlar)); ⊠fri(bildpixlar); segel_förstör_bild(bild);
Nu: struct sail_image *image; SAIL_TRY(sail_read_file(sökvÀg, &image); ... sail_destroy_image(image);
- Lade till BMP-, GIF- och TIFF-format;
- TillgÀnglig i VCPKG pÄ alla plattformar utom UWP;
- Publicerade prestandamÄtt;
- C++-bindning har migrerats till C++17;
- Minnesallokeringsfunktionerna À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 omkompilering;
- AnvÀndare kan nu anvÀnda CMake find_package() för att inkludera 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, Ă€ven tillgĂ€nglig Debian regler
- Windows â vcpkg
- macOS â brygga
KĂ€lla: opennet.ru
