On mitmeid olulisi värskendusi tehtud SAIL pildide dekodeerimise raamatukogus, mis pakub C keelest ümber kirjutatud kodekeid varem toetust kaotanud KSquirrel pildivaatajast, ent koos kõrgetasemelise abstraktse API ja hulga täiustustega. Raamatukogu on kasutamiseks valmis, kuid sellele lisanduvad pidevalt parendused. Binaarne ja API ühilduvus ei ole veel tagatud. Demonstratsioon.
SAIL omadused
- Kiire ja lihtne kasutada raamatukogu;
- Kirjutatud C11 keeles koos C++17 sidemetega;
- Pildi formaate toetatakse dünaamiliselt laaditavate kodekite kaudu, mida saab eemaldada ja lisada sõltumata kliendi osast;
- Lugemine failist, mälust, oma allikatest;
- Toetab mitme lehe ja animatsiooniga pilte;
- Populaarsete formaatide toetus toimub siiski vastavate raamatukogude, nagu libjpeg, libpng jms, abil.
- Platvormidevaheline: Linux, Windows, macOS;
- Probing — teabe saamine pildi kohta ilma pikslite dekodeerimiseta;
- Inimkeelsed nimed entiteetidele (ei mingit FIMULTIBITMAP);
- ICC profiilide lugemine ja kirjutamine;
- Tagastab RGBA või BGRA pikslid;
- Tagastab algsed pikslid (nt CMYK), kui koodek toetab;
Muutuste nimekiri alates eelmisest väljaandest:
- API on oluliselt paranenud ja lihtsustatud. Oli: 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);
Sai: struct sail_image *image; SAIL_TRY(sail_read_file(path, &image); … sail_destroy_image(image);
- Lisatud formaadid BMP, GIF, TIFF;
- Saadavus VCPKG-s kõikidel platvormidel peale UWP;
- Avaldatud võrdlevad jõudlustestid;
- C++ sidumine on muudetud C++17-le;
- Mälu eraldamise funktsioonid on koondatud ühte kohta, et neid oleks lihtne oma versioonidega asendada, kuid hetkel saab seda teha ainult uuesti kompileerimisega;
- Kasutajad saavad nüüd kasutada CMake find_package() SAIL-i ühendamiseks;
- Lisatud staatilise kompileerimise võimalus (SAIL_STATIC=ON);
- Lisatud võimalus kõiki koodekeid kokku kompilatsiooniks ühte teeki (SAIL_COMBINE_CODECS=ON);
- Alustatud töö µnit-põhiste testide lisamise kallal;
Soovitatav paigaldusmeetod
- Linux — vcpkg, samuti on saadaval Debian'i reeglid
- Windows — vcpkg
- macOS — brew
Allikas: opennet.ru
