Publicáronse varias actualizacións importantes da biblioteca de decodificación de imaxes SAIL, que proporcionan unha reescritura en C dos códecs do desaparecido visor de imaxes KSquirrel, pero cunha API abstracta de alto nivel e numerosas melloras. A biblioteca está lista para o seu uso, pero aínda se está a mellorar continuamente. A compatibilidade binaria e API aínda non está garantida. Demostración.
Características de SAIL
- Biblioteca rápida e sinxela de usar;
- Escrito en C11 con enlaces a C++17;
- O soporte para formatos de imaxe implícase mediante códecs cargados dinámicamente, que se poden eliminar e engadir independentemente do lado do cliente;
- Lectura desde ficheiro, memoria, fontes propias;
- Soporte para imaxes de varias páxinas e animadas;
- O soporte para formatos populares aínda se fai usando as bibliotecas correspondentes libjpeg, libpng, etc.
- Multiplataforma: Linux, Windows, macOS;
- "Probing" - obter información sobre unha imaxe sen decodificar píxeles;
- Nomes de entidades humanas (sen FIMULTIBITMAP);
- Ler e escribir perfís ICC;
- Envía píxeles RGBA ou BGRA;
- Devolve os píxeles orixinais (por exemplo, CMYK) se o códec o admite;
Lista de cambios desde a última publicación:
- A API mellorouse e simplificouse significativamente. Was: struct sail_context *context; SAIL_TRY(sail_init(&context)); struct sail_image *imaxe; char sen asinar *image_pixels; SAIL_TRY(sail_read(camiño, contexto, &imaxe, (void **)&imaxe_píxeles)); ... libre (píxeles_imaxe); imaxe_destruír_vela(imaxe);
Agora: struct sail_image *imaxe; SAIL_TRY(arquivo_de_lectura_vela(camiño, e imaxe); ... imaxe_destruír_vela(imaxe);
- Engadidos formatos BMP, GIF, TIFF;
- Dispoñibilidade en VCPKG en todas as plataformas excepto en UWP;
- Probas de rendemento de referencia publicadas;
- A ligazón C++ moveuse a C++17;
- As funcións de asignación de memoria recóllense nun só lugar para que se poidan substituír facilmente pola súa propia, pero polo momento só se pode facer recompilando;
- Os usuarios agora poden usar CMake find_package() para conectar SAIL;
- Engadida a capacidade de compilar de forma estática (SAIL_STATIC=ON);
- Engadida a posibilidade de compilar todos os códecs nunha biblioteca común (SAIL_COMBINE_CODECS=ON);
- Comezouse a traballar para engadir probas baseadas en µnit;
Método de instalación recomendado
- Linux - vcpkg, regras de Debian tamén están dispoñibles
- Windows - vcpkg
- macOS - brew
Fonte: opennet.ru