Biblioteca de decodificación de imágenes SAIL disponible
Bajo licencia MIT publicado por Biblioteca de decodificación de imágenes multiplataforma SAIL. SAIL es un cambio de marca de códecs de un visor de imágenes que no se admite desde hace mucho tiempo reescrito en C KSardilla, pero con una API abstracta de alto nivel y numerosas mejoras. Público objetivo: visores de imágenes, desarrollo de juegos, carga de imágenes en la memoria para otros fines. La biblioteca está en desarrollo, pero ya se puede utilizar. La compatibilidad del código fuente y binario no está garantizada en esta etapa de desarrollo.
Características:
Una biblioteca simple, compacta y rápida escrita en C sin dependencias de terceros (excepto códecs);
API simple, comprensible y al mismo tiempo potente para todas las necesidades;
Enlaces para C++;
Los formatos de imagen son compatibles con códecs cargados dinámicamente;
Lea (y escriba) imágenes de un archivo, memoria o incluso su propia fuente de datos;
Determinar el tipo de imagen por extensión de archivo o por número mágico;
Formatos actualmente soportados: APNG (lectura, solo Windows), JPEG (lectura, escritura) PNG (lectura, escritura).
Se está trabajando para añadir nuevos formatos. KSquirrel-libs admitía alrededor de 60 formatos de una forma u otra, los formatos más populares son los primeros en la fila;
Las operaciones de lectura siempre pueden generar píxeles en formato RGB y RGBA;
Algunos códecs pueden generar píxeles en una lista de formatos aún mayor;
La mayoría de los códecs también pueden generar píxeles SOURCE. Esto es útil, por ejemplo, para quienes desean obtener información completa de imágenes CMYK o YCCK;
Lectura y escritura de perfiles ICC;
Ejemplos en C, Qt, SDL;
Plataformas compatibles:
Windows (instalador), macOS (brew) y Linux (Debian).
Lo que SAIL no proporciona:
Edición de imagen;
Funciones de conversión del espacio de color distintas de las proporcionadas por los códecs subyacentes (libjpeg, etc.);
Funciones de gestión del color (uso de perfiles ICC, etc.)
El ejemplo más simple de decodificación en C:
estructura vela_context *contexto;
SAIL_TRY(vela_init(&contexto));
estructura vela_imagen *imagen;
carácter sin firmar *image_pixels;