SAIL image dekodearjen bibleteek beskikber

Under MIT lisinsje publisearre cross-platform image dekodearjen bibleteek SAIL. SAIL is in rebranding fan codecs fan in lang net-stipe byldwerjefte werskreaun yn C KSquirrel, mar mei in abstrakte API op heech nivo en in protte ferbetterings. Doelpublyk: byldsjoggers, spielûntwikkeling, laden fan ôfbyldings yn it ûnthâld foar oare doelen. De biblioteek is yn ûntwikkeling, mar is al brûkber. Binêre en boarnekoade kompatibiliteit wurdt net garandearre op dit stadium fan ûntwikkeling.

Features:

  • In ienfâldige, kompakte en rappe bibleteek skreaun yn C sûnder ôfhinklikens fan tredden (útsein codecs);
  • Ienfâldich, begryplik en tagelyk krêftige API foar alle behoeften;
  • Binings foar C++;
  • Ofbyldingsformaten wurde stipe troch dynamysk laden codecs;
  • Lês (en skriuw) ôfbyldings út in bestân, ûnthâld, of sels jo eigen gegevensboarne;
  • Bepale it byldtype troch triem taheaksel, of troch magysk getal;
  • Op it stuit stipe formaten: png (lêze, allinich Windows), JPEG (lêze, skriuwe) PNG (lêze, skriuwe).
    Der wurdt wurke oan it tafoegjen fan nije formaten. KSquirrel-libs stipe sawat 60 formaten op ien of oare manier, de populêrste formaten binne earst yn 'e rigel;

  • Lês operaasjes kinne altyd útfier piksels yn RGB en RGBA formaat;
  • Guon codecs kinne útfier piksels yn in noch gruttere list fan formaten;
  • De measte codecs kinne ek SOURCE piksels útfiere. Dit is brûkber, bygelyks, foar dyjingen dy't wolle krije folsleine ynformaasje út CMYK of YCCK ôfbyldings;
  • Lêzen en skriuwen fan ICC-profilen;
  • Foarbylden yn C, Qt, SDL;
  • Stipe platfoarms:
    Windows (ynstallearder), macOS (brew) en Linux (Debian).

Wat SAIL net leveret:

  • Ofbylding bewurkje;
  • Kleurromtekonverzjefunksjes oars as dy levere troch ûnderlizzende codecs (libjpeg, ensfh.);
  • Kleurbehearfunksjes (gebrûk fan ICC-profilen, ensfh.)

It ienfâldichste foarbyld fan dekodearjen yn C:

struct sail_context *kontekst;

SAIL_TRY(sail_init(&context));

struct sail_image *ôfbylding;
net ûndertekene char * image_pixels;

SAIL_TRY(sail_read(paad,
kontekst,
&byld,
(void **)&image_pixels));

/*
* Ferwurkje hjir de ûntfongen piksels.
* Om dit te dwaan, brûk ôfbylding->breedte, ôfbylding->hichte, ôfbylding->bytes_per_line,
* en ôfbylding->pixel_format.
*/

/* Skjin meitsje */
fergees (ôfbylding_piksels);
sail_destroy_image (ôfbylding);

Koarte beskriuwing fan API-nivo's:

  • Newbie: "Ik wol gewoan dizze JPEG downloade"
  • Avansearre: "Ik wol dizze animearre GIF út it ûnthâld lade"
  • Djippeseedûker: "Ik wol dizze animearre GIF út it ûnthâld laden en folsleine kontrôle hawwe oer de codecs en pikselútfier dy't ik kies."
  • Technyske dûker: "Ik wol alles hjirboppe, en myn eigen gegevensboarne"

Direkte konkurrinten út itselde gebiet:

  • FreeImage
  • Duvel
  • SDL_Ofbyld
  • WIC
  • ynlib2
  • Boost.GIL
  • gdk-pixbuf

Ferskillen fan oare bibleteken:

  • Human API mei ferwachte entiteiten - ôfbyldings, paletten, ensfh.
  • De measte codecs kinne mear útfiere dan allinich RGB / RGBA-piksels.
  • De measte codecs kinne orizjinele piksels útfiere sûnder konverzje nei RGB.
  • Jo kinne codecs yn elke taal skriuwe, en se ek tafoegje / fuortsmite sûnder it heule projekt opnij te kompilearjen.
  • Bewarje ynformaasje oer de oarspronklike ôfbylding.
  • "Probing" is it proses fan it krijen fan ynformaasje oer in ôfbylding sûnder de pikselgegevens te dekodearjen.
  • Grutte en snelheid.

Boarne: opennet.ru

Add a comment