Lanzamiento de la biblioteca de decodificación de imágenes SAIL 0.9.0-pre12

Se han publicado varias actualizaciones importantes de la biblioteca de decodificación de imágenes SAIL, que proporcionan una reescritura en C de los códecs del desaparecido visor de imágenes KSquirrel, pero con una API abstracta de alto nivel y numerosas mejoras. La biblioteca está lista para su uso, pero aún se mejora continuamente. La compatibilidad binaria y API aún no está garantizada. Demostración.

Características de la vela

  • Biblioteca rápida y fácil de usar;
  • Escrito en C11 con enlaces a C++17;
  • La compatibilidad con formatos de imagen se implementa mediante códecs cargados dinámicamente, que se pueden eliminar y agregar independientemente del lado del cliente;
  • Lectura de archivo, memoria, fuentes propias;
  • Soporte para imágenes animadas y de varias páginas;
  • El soporte para formatos populares todavía se realiza utilizando las bibliotecas correspondientes libjpeg, libpng, etc.
  • Multiplataforma: Linux, Windows, macOS;
  • “Sondeo”: obtener información sobre una imagen sin decodificar píxeles;
  • Nombres de entidades humanas (sin FIMULTIBITMAP);
  • Lectura y escritura de perfiles ICC;
  • Envía píxeles RGBA o BGRA;
  • Devuelve los píxeles originales (por ejemplo, CMYK) si el códec lo admite;

Lista de cambios desde la última publicación:

  • La API se ha mejorado y simplificado significativamente. Era: estructura vela_context *context; SAIL_TRY(vela_init(&contexto)); estructura vela_imagen *imagen; carácter sin firmar *image_pixels; SAIL_TRY(sail_read(ruta, contexto e imagen, (void **)&image_pixels)); ...gratis(imagen_pixeles); vela_destroy_image(imagen);

    Ahora: struct Sail_image *image; SAIL_TRY(sail_read_file(ruta, &imagen); ... Sail_destroy_image(imagen);

  • Se agregaron formatos BMP, GIF, TIFF;
  • Disponibilidad en VCPKG en todas las plataformas excepto UWP;
  • Publicaciones de pruebas comparativas de desempeño;
  • El enlace de C++ se ha movido a C++17;
  • Las funciones de asignación de memoria están reunidas en un solo lugar para que puedan ser reemplazadas fácilmente por las suyas propias, pero por el momento esto solo se puede hacer recompilando;
  • Los usuarios ahora pueden usar CMake find_package() para conectar SAIL;
  • Se agregó la capacidad de compilar estáticamente (SAIL_STATIC=ON);
  • Se agregó la capacidad de compilar todos los códecs en una biblioteca común (SAIL_COMBINE_CODECS=ON);
  • Se ha comenzado a trabajar para agregar pruebas basadas en µnit;

Método de instalación recomendado

  • Linux - vcpkg, las reglas de Debian también están disponibles
  • Windows-vcpkg
  • macOS - preparar

Fuente: opennet.ru

Añadir un comentario