Umtapo wolwazi wokuqopha izithombe we-SAIL uyatholakala

Ngaphansi kwelayisense ye-MIT eshicilelwe umtapo wolwazi wokukhipha amakhodi wesithombe se-cross-platform SAIL. I-SAIL iwukwenza kabusha ama-codec avela kusibukeli sesithombe esingasekelwa isikhathi eside esibhalwe kabusha ngo-C I-KSquirrel, kodwa nge-API engabonakali yezinga eliphezulu kanye nokuthuthukiswa okuningi. Izithameli eziqondiwe: ababukeli bezithombe, ukuthuthukiswa komdlalo, ukulayisha izithombe enkumbulweni ngezinye izinjongo. Ilabhulali isathuthukiswa, kodwa isivele iyasebenziseka. Kanambambili kanye nekhodi yomthombo ukuhambisana akuqinisekisiwe kulesi sigaba sokuthuthuka.

Izici:

  • Umtapo wolwazi olula, ohlangene futhi osheshayo obhalwe ngo-C ngaphandle kokuncika kwezinkampani zangaphandle (ngaphandle kwamakhodekhi);
  • I-API elula, eqondakalayo futhi ngesikhathi esifanayo enamandla kuzo zonke izidingo;
  • Izibopho ze-C++;
  • Amafomethi wesithombe asekelwa amakhodekhi alayishwe ngamandla;
  • Funda (futhi ubhale) izithombe efayeleni, kumemori, noma ngisho umthombo wakho wedatha;
  • Ukunquma uhlobo lwesithombe ngesandiso sefayela, noma nge inombolo yomlingo;
  • Amafomethi asekelwayo njengamanje: I-APNG (funda, iWindows kuphela), i-JPEG (funda, bhala) PNG (funda, bhala).
    Umsebenzi uyaqhubeka wokwengeza amafomethi amasha. I-KSquirrel-libs isekela amafomethi angaba ngu-60 ngendlela eyodwa noma enye, amafomethi adume kakhulu aqala emgqeni;

  • Imisebenzi yokufunda ingahlala ikhipha amaphikseli ngefomethi ye-RGB ne-RGBA;
  • Amanye ama-codec angakhipha amaphikseli ohlwini olukhulu nakakhulu lwamafomethi;
  • Amakhodekhi amaningi angaphinda akhiphe amaphikseli angu-SOURCE. Lokhu kuyasiza, ngokwesibonelo, kulabo abafuna ukuthola ulwazi olugcwele ezithombeni ze-CMYK noma ze-YCCK;
  • Ukufunda nokubhala amaphrofayili e-ICC;
  • Izibonelo ku-C, Qt, SDL;
  • Amapulatifomu asekelwe:
    IWindows (isifaki), i-macOS (brew) ne-Linux (Debian).

Yini i-SAIL engakunikezi:

  • Ukuhlela isithombe;
  • Imisebenzi yokuguqula indawo yombala ngaphandle kwaleyo ehlinzekwa amakhodekhi angaphansi (libjpeg, njll.);
  • Imisebenzi yokuphatha imibala (ukusetshenziswa kwamaphrofayili e-ICC, njll.)

Isibonelo esilula kakhulu sokuqopha ku-C:

struct sail_context *umongo;

SAIL_TRY(sail_init(&context));

struct sail_image *isithombe;
inhlamvu engasayiniwe *image_pixels;

SAIL_TRY(seyili_funda(indlela,
umongo,
&isithombe,
(okungenalutho **)&image_pixels));

/*
* Lapha cubungula amaphikseli atholiwe.
* Ukuze wenze lokhu, sebenzisa isithombe->ububanzi, isithombe->ubude, isithombe->amabhayithi_ngomugqa,
* kanye nesithombe->ifomethi_yephikseli.
*/

/* Hlanza */
mahhala(amaphikiseli_esithombe);
sail_destroy_image(isithombe);

Incazelo emfushane yamazinga e-API:

  • U-Newbie: "Ngifuna ukulanda le JPEG"
  • Okuthuthukisiwe: "Ngifuna ukulayisha le GIF yopopayi kusuka enkumbulweni"
  • Umtshuzi wasolwandle ojulile: “Ngifuna ukulayisha le GIF yopopayi ngekhanda futhi ngilawule ngokugcwele amakhodekhi nokuphuma kwephikseli engikukhethayo.”
  • I-Technical Diver: "Ngifuna konke okungenhla, nomthombo wami wedatha"

Izimbangi eziqondile ezivela endaweni efanayo:

  • Isithombe samahhala
  • UDEVELI
  • SDL_Image
  • I-WIC
  • imlib2
  • I-Boost.GIL
  • gdk-pixbuf

Umehluko weminye imitapo yolwazi:

  • I-API yomuntu enezinhlangano ezilindelekile - izithombe, amaphalethi, njll.
  • Amakhodekhi amaningi angakhipha okungaphezu kwamaphikseli e-RGB/RGBA kuphela.
  • Amakhodekhi amaningi angakhipha amaphikseli angempela ngaphandle kokuguqulelwa ku-RGB.
  • Ungabhala ama-codec nganoma yiluphi ulimi, futhi futhi uwengeze/uwasuse ngaphandle kokubuyisela yonke iphrojekthi.
  • Londoloza ulwazi mayelana nesithombe sokuqala.
  • "Ukuhlola" kuyinqubo yokuthola ulwazi mayelana nesithombe ngaphandle kokuqopha idatha yephikseli.
  • Usayizi nesivinini.

Source: opennet.ru

Engeza amazwana