Pluraj signifaj ĝisdatigoj al la SAIL-bildmalkodbiblioteko estis publikigitaj, disponigante C reverkon de la kodekoj de la longe malfunkcia KSquirrel-bildspektilo, sed kun altnivela abstrakta API kaj multaj plibonigoj. La biblioteko estas preta por uzo, sed daŭre estas kontinue plibonigata. Duuma kaj API-kongruo ankoraŭ ne estas garantiita. Manifestacio.
Karakterizaĵoj de SAIL
- Rapida kaj facile uzebla biblioteko;
- Skribita en C11 kun ligadoj al C++17;
- Subteno por bildformatoj estas efektivigita per dinamike ŝarĝitaj kodekoj kiuj povas esti forigitaj kaj aldonitaj sendepende de la klientflanko;
- Legado el dosiero, memoro, propraj fontoj;
- Subteno por plurpaĝaj kaj viglaj bildoj;
- Subteno por popularaj formatoj ankoraŭ estas farita uzante la respondajn bibliotekojn libjpeg, libpng, ktp.
- Multiplataforma: Linukso, Vindozo, macOS;
- "Probing" - akiri informojn pri bildo sen malkodi pikselojn;
- Homaj entaj nomoj (neniu FIMULTIBITMAP);
- Legado kaj skribado de ICC-profiloj;
- Sendas RGBA aŭ BGRA-pikselojn;
- Resendas originalajn pikselojn (ekzemple, CMYK) se subtenata de la kodeko;
Listo de ŝanĝoj ekde lasta publikigo:
- La API estis signife plibonigita kaj simpligita. Estis: struct sail_context *kunteksto; SAIL_PROVI(sail_init(&kunteksto)); struct sail_image *bildo; nesubskribita char *bildo_pikseloj; SAIL_TRY(vel_legi (vojo, kunteksto, &bildo, (void **)&bildo_pikseloj)); ...senpaga(bildo_pikseloj); vel_detrui_bildon(bildo);
Nun: struct sail_image *bildo; SAIL_TRY(vel_legi_dosiero(vojo, &bildo); ... vel_detruy_image(bildo);
- Aldonitaj formatoj BMP, GIF, TIFF;
- Havebleco en VCPKG sur ĉiuj platformoj krom UWP;
- Benchmark-efikectestoj publikigitaj;
- C++-ligado estis movita al C++17;
- Funkcioj de memor-atribuo estas kolektitaj en unu loko por ke ili povas esti facile anstataŭigitaj per via propra, sed nuntempe tio povas esti farita nur per rekompilado;
- Uzantoj nun povas uzi CMake find_package() por konekti SAIL;
- Aldonita la kapablo statike kompili (SAIL_STATIC=ON);
- Aldonita la kapablo kompili ĉiujn kodekojn en unu komunan bibliotekon (SAIL_COMBINE_CODECS=ON);
- Laboro komenciĝis pri aldono de µnit-bazitaj testoj;
Rekomendita instala metodo
- Linukso - vcpkg, Debianaj reguloj ankaŭ haveblas
- Vindozo - vcpkg
- macOS - brew
fonto: opennet.ru