SAIL image decoding library misy

Eo ambanin'ny lisansa MIT namoaka Tranomboky decoding sary cross-platform SAIL. Ny SAIL dia fanavaozana ny codec avy amin'ny mpijery sary efa ela tsy notohanana nosoratana tamin'ny C KSquirrel, fa miaraka amin'ny API abstract avo lenta sy fanatsarana maro. Kendrena mpihaino: mpijery sary, fampivoarana lalao, fampidirana sary ho fahatsiarovana ho an'ny tanjona hafa. Ny trano famakiam-boky dia eo an-dalam-pandrosoana, saingy efa azo ampiasaina. Tsy azo antoka ny fifanarahana binary sy source code amin'izao dingana fampandrosoana izao.

endri-javatra:

  • Fitehirizam-boky tsotra sy mirindra ary haingana voasoratra amin'ny C tsy misy fiankinan-doha amin'ny antoko fahatelo (afa-tsy codec);
  • Tsotra, azo takarina ary miaraka amin'ny API mahery vaika ho an'ny filana rehetra;
  • Famatorana ho an'ny C++;
  • Ny endrika sary dia tohanan'ny codecs dynamically loaded;
  • Mamakia (ary manorata) sary avy amin'ny rakitra, fahatsiarovana, na loharano angonao manokana aza;
  • Famaritana ny karazana sary amin'ny alΓ lan'ny fanitarana rakitra, na amin'ny isa majika;
  • Ireo endrika tohana ankehitriny: png (vakio, Windows ihany), JPEG (mamaky, manoratra) PNG (mamaky, manoratra).
    Mandeha ny asa hanampiana endrika vaovao. Ny KSquirrel-libs dia nanohana endrika 60 teo ho eo tamin'ny fomba iray na hafa, ny endrika malaza indrindra dia laharana voalohany;

  • Ny asa famakiana dia afaka mamoaka piksela amin'ny endrika RGB sy RGBA foana;
  • Ny codec sasany dia afaka mamoaka piksel amin'ny lisitry ny endrika lehibe kokoa;
  • Ny ankamaroan'ny codec dia afaka mamoaka SOURCE pixels ihany koa. Ity dia mahasoa, ohatra, ho an'ireo izay te hahazo fampahalalana feno amin'ny sary CMYK na YCCK;
  • Mamaky sy manoratra ny mombamomba ny ICC;
  • Ohatra amin'ny C, Qt, SDL;
  • Sehatra tohanan'ny:
    Windows (installer), macOS (brew) ary Linux (Debian).

Inona no tsy omen'ny SAIL:

  • Fanovana sary;
  • Miasa amin'ny fiovan'ny habaka loko hafa ankoatry ny omen'ny codecs fototra (libjpeg, sns.);
  • Ny asa fitantanana loko (fampiasana ny mombamomba ny ICC, sns.)

Ny ohatra tsotra indrindra amin'ny decoding amin'ny C:

struct sail_context *context;

SAIL_TRY(sail_init(&context));

struct sail_image * sary;
tsy misy sonia char *image_pixels;

SAIL_TRY(sail_read(lalana,
konteks,
&sary,
(void **)&image_pixels));

/*
* Atsofohy eto ny piksel voaray.
* Mba hanaovana izany, ampiasao ny sary-> sakany, sary-> haavo, sary-> bytes_per_line,
* ary sary->pixel_format.
*/

/* Manadio */
maimaim-poana(image_pixels);
sail_destroy_image(sary);

Famaritana fohy momba ny ambaratonga API:

  • Newbie: "Te-hisintona ity JPEG ity fotsiny aho"
  • Advanced: "Te-hampiditra an'ity GIF mihetsika ity amin'ny fitadidiana aho"
  • Mpilatsaka an-dranomasina lalina: "Te hampiditra an'ity GIF mihetsika ity amin'ny fitadidiana aho ary hifehy tanteraka ny codec sy ny famoahana piksel izay nofidiko."
  • Mpitarika ara-teknika: "Tiako ny zava-drehetra etsy ambony, ary ny loharano angoniko manokana"

Mifaninana mivantana avy amin'ny faritra iray ihany:

  • FreeImage
  • DEVOLY
  • SDL_Sary
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Ny fahasamihafana amin'ny tranomboky hafa:

  • API olombelona miaraka amin'ireo singa andrasana - sary, palettes, sns.
  • Ny ankamaroan'ny codec dia afaka mamoaka mihoatra noho ny piksel RGB/RGBA.
  • Ny ankamaroan'ny codec dia afaka mamoaka piksela tany am-boalohany tsy misy fiovam-po amin'ny RGB.
  • Azonao atao ny manoratra codec amin'ny fiteny rehetra, ary manampy / manala azy ireo ihany koa nefa tsy mamerina ny tetikasa manontolo.
  • Tehirizo fampahafantarana momba ny sary tany am-boalohany.
  • Ny "Probing" dia ny dingan'ny fahazoana fampahalalana momba ny sary iray tsy misy famaritana ny angon-drakitra piksel.
  • Habe sy hafainganam-pandeha.

Source: opennet.ru

Add a comment