Lanzamento da biblioteca de decodificación de imaxes SAIL 0.9.0-pre12

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

Engadir un comentario