SAIL laebrari ea ho decoding ea litšoantšo e teng

Tlas'a laesense ea MIT phatlalalitsoe cross-platform image decoding library SAIL. SAIL ke phetolelo e ncha ea li-codec ho tsoa ho sebali sa khale se sa tšehetsoeng se ngotsoeng hape ho C KSquirrel, empa ka API ea boemo bo holimo le lintlafatso tse ngata. Bamameli ba sepheo: bashebelli ba litšoantšo, nts'etsopele ea lipapali, ho kenya litšoantšo mohopolong ka merero e meng. Laebrari e ntse e ntlafatsoa, ​​​​empa e se e ntse e sebelisoa. Binary le mohloli o lumellanang le khoutu ha o tiisetsoe nakong ena ea tsoelo-pele.

Likarolo:

  • Laeborari e bonolo, e kopaneng le e potlakileng e ngotsoeng ka C ntle le ho its'etleha ho motho oa boraro (ntle le li-codec);
  • E bonolo, e utloisisoang ebile ka nako e ts'oanang e matla API bakeng sa litlhoko tsohle;
  • Litlamo bakeng sa C ++;
  • Lifomate tsa litšoantšo li tšehetsoa ke li-codec tse imetsoeng ka matla;
  • Bala (le ho ngola) litšoantšo ho tsoa faeleng, mohopolong, kapa mohloling oa hau oa data;
  • Ho khetha mofuta oa setšoantšo ka katoloso ea faele, kapa ka nomoro ea boselamose;
  • Lifomete tse tšehetsoeng hajoale: png (bala, Windows feela), JPEG (bala, ngola) PNG (bala, ngola).
    Mosebetsi o ntse o tsoela pele ho kenya lifomate tse ncha. KSquirrel-libs e tšehelitsoe ka lifomate tse ka bang 60 ka tsela e 'ngoe kapa e' ngoe, lifomate tse tsebahalang haholo ke tsa pele moleng;

  • Lits'ebetso tsa ho bala li ka lula li hlahisa pixels ka sebopeho sa RGB le RGBA;
  • Li-codec tse ling li ka hlahisa lipikselse ka lethathamo le leholoanyane la lifomate;
  • Li-codec tse ngata li ka hlahisa lipikselse tse SOURCE. Sena se na le thuso, mohlala, bakeng sa ba batlang ho fumana boitsebiso bo feletseng ho tloha litšoantšong tsa CMYK kapa YCCK;
  • Ho bala le ho ngola litlaleho tsa ICC;
  • Mehlala ho C, Qt, SDL;
  • Liforomo tse tšehelitsoeng:
    Windows (sehlopha), macOS (brew) le Linux (Debian).

Seo SAIL e sa faneng ka sona:

  • Ho lokisa litšoantšo;
  • Mesebetsi ea ho fetola sebaka sa mebala ntle le e fanoeng ke li-codecs (libjpeg, joalo-joalo);
  • Mesebetsi ea taolo ea mebala (ts'ebeliso ea liprofaele tsa ICC, jj.)

Mohlala o bonolo ka ho fetisisa oa decoding ho C:

struct sail_context *context;

SAIL_TRY(sail_init(&context));

struct sail_image *setšoantšo;
char e sa ngolisoang *setšoantšo_pixels;

SAIL_TRY(seile_bala(tsela,
moelelo,
&setšoantšo,
(ha ho letho **)&image_pixels));

/*
* Mona sebetsa lipikselse tse amoheloang.
* Ho etsa sena, sebelisa setšoantšo-> bophara, setšoantšo-> bophahamo, setšoantšo-> li-byte_per_line,
* le setšoantšo->pixel_format.
*/

/* Hloekisa */
mahala(setšoantšo_pixels);
sail_destroy_image(setšoantšo);

Tlhaloso e khuts'oane ea maemo a API:

  • Newbie: "Ke batla feela ho khoasolla JPEG ena"
  • E tsoetseng pele: "Ke batla ho kenya GIF ena ea animated ho tsoa mohopolong"
  • Deep Sea: "Ke batla ho kenya GIF ena ea animated ka hlooho 'me ke be le taolo e felletseng holim'a li-codec le tlhahiso ea pixel eo ke e khethang."
  • Technical Diver: "Ke batla ntho e 'ngoe le e' ngoe e ka holimo, le mohloli oa ka oa data"

Bahlolisani ba tobileng ho tsoa sebakeng se le seng:

  • FreeImage
  • DIABOLOSE
  • SDL_Setšoantšo
  • WIC
  • imlib2
  • Matlafatsa.GIL
  • gdk-pixbuf

Phapang ho tsoa lilaebraring tse ling:

  • API ea batho e nang le mekhatlo e lebelletsoeng - litšoantšo, lipalete, jj.
  • Li-codec tse ngata li ka hlahisa ho feta lipikselse tsa RGB/RGBA feela.
  • Li-codec tse ngata li ka hlahisa lipikselse tsa mantlha ntle le ho fetolela ho RGB.
  • U ka ngola li-codec ka puo efe kapa efe, 'me u li kenye / u li tlose ntle le ho khutlisa morero oohle.
  • Boloka tlhahisoleseling mabapi le setšoantšo sa mantlha.
  • "Ho hlahloba" ke mokhoa oa ho fumana tlhahisoleseling ka setšoantšo ntle le ho khetholla data ea pixel.
  • Boholo le lebelo.

Source: opennet.ru

Eketsa ka tlhaloso