Under MIT-licens offentliggjort cross-platform billedafkodningsbibliotek SAIL. SAIL er en rebranding af codecs fra en længe ikke-understøttet billedfremviser omskrevet i C KSquirrel, men med en abstrakt API på højt niveau og adskillige forbedringer. Målgruppe: billedfremvisere, spiludvikling, indlæsning af billeder i hukommelsen til andre formål. Biblioteket er under udvikling, men er allerede brugbart. Binær og kildekodekompatibilitet er ikke garanteret på dette udviklingstrin.
features:
Et enkelt, kompakt og hurtigt bibliotek skrevet i C uden tredjepartsafhængigheder (undtagen codecs);
Enkel, forståelig og samtidig kraftfuld API til alle behov;
Bindinger for C++;
Billedformater understøttes af dynamisk indlæste codecs;
Læs (og skriv) billeder fra en fil, hukommelse eller endda din egen datakilde;
Bestemmelse af billedtypen ved filtypenavn eller efter magiske tal;
Aktuelt understøttede formater: png (læs, kun Windows), JPEG (læs, skriv) PNG (læs, skriv).
Der arbejdes på at tilføje nye formater. KSquirrel-libs understøttede omkring 60 formater på den ene eller anden måde, de mest populære formater er først i rækken;
Læseoperationer kan altid udlæse pixels i RGB- og RGBA-format;
Nogle codecs kan udskrive pixels i en endnu større liste af formater;
De fleste codecs kan også udsende SOURCE pixels. Dette er f.eks. nyttigt for dem, der ønsker at få fuld information fra CMYK- eller YCCK-billeder;
Læsning og skrivning af ICC-profiler;
Eksempler i C, Qt, SDL;
Understøttede platforme:
Windows (installationsprogram), macOS (brew) og Linux (Debian).
Hvad SAIL ikke tilbyder:
Billedredigering;
Andre farverumskonverteringsfunktioner end dem, der leveres af underliggende codecs (libjpeg osv.);
Farvestyringsfunktioner (brug af ICC-profiler osv.)
/*
* Her behandles de modtagne pixels.
* For at gøre dette skal du bruge billede->bredde, billede->højde, billede->bytes_per_linje,
* og billede->pixel_format.
*/
/* Ryd op */
gratis(billede_pixels);
sail_destroy_image(image);
Kort beskrivelse af API-niveauer:
Nybegynder: "Jeg vil bare downloade denne JPEG"
Avanceret: "Jeg vil indlæse denne animerede GIF fra hukommelsen"
Dybhavsdykker: "Jeg vil indlæse denne animerede GIF fra hukommelsen og have fuld kontrol over de codecs og pixeloutput, som jeg vælger."
Teknisk dykker: "Jeg vil have alt ovenfor og min egen datakilde"
Direkte konkurrenter fra samme område:
FreeImage
Djævel
SDL_Billede
WIC
imlib2
Boost.GIL
gdk-pixbuf
Forskelle fra andre biblioteker:
Human API med forventede entiteter - billeder, paletter osv.
De fleste codecs kan udsende mere end blot RGB/RGBA-pixel.
De fleste codecs kan udskrive originale pixels uden konvertering til RGB.
Du kan skrive codecs på ethvert sprog og også tilføje/fjerne dem uden at genkompilere hele projektet.
Bevar oplysninger om det originale billede.
"Probing" er processen med at indhente information om et billede uden at afkode pixeldataene.