Ithala leencwadi le-SAIL lokuchaza imifanekiso liyafumaneka

Phantsi kwelayisenisi ye-MIT ipapashiwe ithala leencwadi le-SAIL lokuchaza imifanekiso yeqonga. I-SAIL luphawu ngokutsha lwee-codecs ezisuka kwisijongi somfanekiso esingaxhaswanga esibhalwe ngokutsha kwi-C KSquirrel, kodwa nge-API yezinga eliphezulu kunye nophuculo oluninzi. Abaphulaphuli ekujoliswe kubo: ababukeli bemifanekiso, uphuhliso lomdlalo, ukulayisha imifanekiso kwimemori yezinye iinjongo. Ithala leencwadi liphantsi kophuhliso, kodwa sele lisetyenziswa. Ukuhambelana kwekhowudi yeBinary kunye nemvelaphi akuqinisekiswanga kweli nqanaba lophuhliso.

Amathuba:

  • Ithala leencwadi elilula, elicuthekileyo nelikhawulezayo elibhalwe ngo-C ngaphandle kokuxhomekeka kumntu wesithathu (ngaphandle kwee-codecs);
  • Ilula, iyaqondakala kwaye ngexesha elifanayo i-API enamandla kuzo zonke iimfuno;
  • Izibophelelo zeC++;
  • Iifomati zemifanekiso zixhaswa ziikhowudi ezilayishwe ngamandla;
  • Funda (kwaye ubhale) imifanekiso esuka kwifayile, inkumbulo, okanye nomthombo wakho wedatha;
  • Ukumisela uhlobo lomfanekiso ngokwandiswa kwefayile, okanye nge inombolo yomlingo;
  • Iifomati ezixhaswayo ngoku: I-APNG (funda, Windows kuphela), JPEG (funda, bhala) PNG (funda, bhala).
    Umsebenzi uyaqhubeka wokongeza iifomati ezintsha. I-KSquirrel-libs ixhaswe malunga neefomati ezingama-60 ngendlela enye okanye enye, ezona fom zidumileyo zezokuqala emgceni;

  • Imisebenzi yokufunda inokuhlala ikhupha iipikseli kwifomathi ye-RGB kunye ne-RGBA;
  • Ezinye ii-codecs zinokukhupha ii-pixels kuluhlu olukhulu ngakumbi lweefomati;
  • Uninzi lwee-codecs zinokukhupha ii-pixels ze-SOURCE. Oku kuluncedo, umzekelo, kwabo bafuna ukufumana ulwazi olupheleleyo kwi-CMYK okanye kwimifanekiso yeYCCK;
  • Ukufunda nokubhala iiprofayili ze-ICC;
  • Imizekelo kwi-C, Qt, SDL;
  • Amaqonga axhaswayo:
    IWindows (isifakeli), iMacOS (brew) kunye neLinux (Debian).

Yintoni i-SAIL engaboneleli ngayo:

  • ukuhlela umfanekiso;
  • Umbala wemisebenzi yokuguqula indawo ngaphandle kwaleyo inikezelwe ziikhowudi ezisisiseko (libjpeg, njl.);
  • Imisebenzi yokulawula umbala (ukusetyenziswa kweeprofayile ze-ICC, njl.)

Owona mzekelo ulula wokwenza iikhowudi kuC:

i-struct sail_context *umxholo;

SAIL_TRY(sail_init(&context));

yakha isail_image *umfanekiso;
itshathi engatyikitywanga *imifanekiso_ipikseli;

SAIL_TRY(seyile_funda(indlela,
umxholo,
& nomfanekiso,
(ingenanto **)&image_pixels));

/*
* Apha qhubekekisa iipixels ezifunyenweyo.
* Ukwenza oku, sebenzisa umfanekiso-> ububanzi, umfanekiso-> ubude, umfanekiso-> bytes_per_line,
* kunye nomfanekiso->i-pixel_format.
*/

/* Coca */
simahla(iipixels_zomfanekiso);
ngeseyile_destroy_image(umfanekiso);

Inkcazo emfutshane yamanqanaba e-API:

  • Newbie: "Ndifuna ukukhuphela le JPEG"
  • NONE
  • Idiver yolwandle enzulu: "Ndifuna ukulayisha le GIF yopopayi kwinkumbulo kwaye ndibe nolawulo olupheleleyo kwii-codecs kunye nemveliso yepixel endiyikhethayo."
  • I-Technical Diver: "Ndifuna yonke into engentla, kunye nomthombo wam wedatha"

Okhuphisana ngokuthe ngqo kwindawo enye:

  • Umfanekiso wasimahla
  • UMtyholi
  • SDL_Umfanekiso
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Umahluko kwamanye amathala eencwadi:

  • I-API yomntu kunye namaziko alindelekileyo - imifanekiso, iipalethi, njl.
  • Uninzi lwee-codecs zinokukhupha ngaphezulu kweepikseli zeRGB/RGBA kuphela.
  • Uninzi lwee-codecs zinokukhupha iipikseli zoqobo ngaphandle kokuguqulwa kwi-RGB.
  • Ungabhala ii-codecs kulo naluphi na ulwimi, kwaye wongeze/ususe ngaphandle kokubuyisela yonke iprojekthi.
  • Gcina ulwazi malunga nomfanekiso wokuqala.
  • β€œUkuhlola” yinkqubo yokufumana ulwazi malunga nomfanekiso ngaphandle kokwenza iikhowudi kwidatha yepixel.
  • Ubungakanani kunye nesantya.

umthombo: opennet.ru

Yongeza izimvo