Lançamento da biblioteca de decodificação de imagens SAIL 0.9.0-pre12

Várias atualizações importantes na biblioteca de decodificação de imagens SAIL foram publicadas, fornecendo uma reescrita C dos codecs do extinto visualizador de imagens KSquirrel, mas com uma API abstrata de alto nível e inúmeras melhorias. A biblioteca está pronta para uso, mas ainda está sendo continuamente aprimorada. A compatibilidade binária e API ainda não está garantida. Demonstração.

Características do SAIL

  • Biblioteca rápida e fácil de usar;
  • Escrito em C11 com ligações para C++17;
  • O suporte para formatos de imagem é implementado por codecs carregados dinamicamente, que podem ser removidos e adicionados independentemente do lado do cliente;
  • Leitura de arquivo, memória, fontes próprias;
  • Suporte para imagens animadas e de várias páginas;
  • O suporte para formatos populares ainda é feito usando as bibliotecas correspondentes libjpeg, libpng, etc.
  • Plataforma cruzada: Linux, Windows, macOS;
  • “Sondagem” - obtenção de informações sobre uma imagem sem decodificação de pixels;
  • Nomes de entidades humanas (sem FIMULTIBITMAP);
  • Ler e escrever perfis ICC;
  • Envia pixels RGBA ou BGRA;
  • Retorna pixels originais (por exemplo, CMYK) se suportados pelo codec;

Lista de alterações desde a última publicação:

  • A API foi significativamente melhorada e simplificada. Era: struct vela_context *context; SAIL_TRY(sail_init(&contexto)); struct vela_imagem *imagem; caractere não assinado *image_pixels; SAIL_TRY(sail_read(caminho, contexto, &imagem, (void **)&image_pixels)); ... grátis(imagem_pixels); Sail_destroy_image(imagem);

    Agora: struct vela_image *imagem; SAIL_TRY(sail_read_file(caminho, &imagem); ... Sail_destroy_image(imagem);

  • Adicionados formatos BMP, GIF, TIFF;
  • Disponibilidade em VCPKG em todas as plataformas exceto UWP;
  • Testes de desempenho de referência publicados;
  • A ligação C++ foi movida para C++17;
  • As funções de alocação de memória são coletadas em um só lugar para que possam ser facilmente substituídas pelas suas próprias, mas no momento isso só pode ser feito por meio de recompilação;
  • Os usuários agora podem usar CMake find_package() para conectar o SAIL;
  • Adicionada a capacidade de compilar estaticamente (SAIL_STATIC=ON);
  • Adicionada a capacidade de compilar todos os codecs em uma biblioteca comum (SAIL_COMBINE_CODECS=ON);
  • Começou o trabalho para adicionar testes baseados em μnit;

Método de instalação recomendado

  • Linux - vcpkg, regras Debian também estão disponíveis
  • Windows - vcpkg
  • macOS - preparar

Fonte: opennet.ru

Adicionar um comentário