Biblioteca de decodificación de imaxes SAIL dispoñible
Baixo licenza MIT publicado biblioteca de decodificación de imaxes multiplataforma SAIL. SAIL é un cambio de marca de códecs dun visor de imaxes sen compatibilidade e reescrito en C KSquirro, pero cunha API abstracta de alto nivel e numerosas melloras. Público obxectivo: espectadores de imaxes, desenvolvemento de xogos, carga de imaxes na memoria para outros fins. A biblioteca está en desenvolvemento, pero xa se pode utilizar. A compatibilidade do código binario e do código fonte non está garantida nesta fase de desenvolvemento.
Características:
Unha biblioteca sinxela, compacta e rápida escrita en C sen dependencias de terceiros (excepto codecs);
API sinxela, comprensible e ao mesmo tempo potente para todas as necesidades;
Ligazóns para C++;
Os formatos de imaxe son compatibles con códecs cargados dinámicamente;
Le (e escribe) imaxes dun ficheiro, memoria ou mesmo da túa propia fonte de datos;
Determinar o tipo de imaxe por extensión de ficheiro ou por número máxico;
Formatos soportados actualmente: png (ler, só Windows), JPEG (ler, escribir) PNG (ler, escribir).
Estase traballando para engadir novos formatos. KSquirrel-libs admitiu uns 60 formatos dun xeito ou doutro, os formatos máis populares son os primeiros na liña;
As operacións de lectura sempre poden producir píxeles en formato RGB e RGBA;
Algúns códecs poden producir píxeles nunha lista aínda maior de formatos;
A maioría dos códecs tamén poden emitir píxeles SOURCE. Isto é útil, por exemplo, para aqueles que queren obter información completa das imaxes CMYK ou YCCK;
Ler e escribir perfís ICC;
Exemplos en C, Qt, SDL;
Plataformas compatibles:
Windows (instalador), macOS (brew) e Linux (Debian).
O que SAIL non ofrece:
Edición de imaxes;
Funcións de conversión de espazo de cor distintas das proporcionadas polos códecs subxacentes (libjpeg, etc.);
Funcións de xestión da cor (uso de perfís ICC, etc.)
O exemplo máis sinxelo de decodificación en C:
struct sail_context *contexto;
SAIL_TRY(sail_init(&context));
struct sail_image *imaxe;
char sen asinar *image_pixels;