Loaʻa ka waihona decoding kiʻi SAIL

Ma lalo o ka laikini MIT hoʻopuka ʻia kea-platform kiʻi decoding waihona SAIL. ʻO SAIL kahi hōʻailona hou o nā codec mai kahi mea nānā kiʻi lōʻihi i kākoʻo ʻole ʻia i kākau hou ʻia ma C KSquirrel, akā me kahi API abstract kiʻekiʻe a me nā hoʻomaikaʻi he nui. Manaʻo ʻia: nā mea nānā kiʻi, hoʻomohala pāʻani, hoʻouka i nā kiʻi i ka hoʻomanaʻo no nā kumu ʻē aʻe. Ke kūkulu ʻia nei ka waihona, akā hiki ke hoʻohana ʻia. ʻAʻole hōʻoiaʻiʻo ʻia ka hoʻohālikelike binary a me ke kumu kumu i kēia manawa o ka hoʻomohala ʻana.

Nā Mea Hana:

  • He waihona maʻalahi, paʻa a wikiwiki hoʻi i kākau ʻia ma C me ka ʻole o nā mea hilinaʻi ʻekolu (koe wale nā ​​codecs);
  • Maʻalahi, hoʻomaopopo a ma ka manawa like ka API ikaika no nā pono āpau;
  • Nā hoʻopaʻa ʻana no C++;
  • Kākoʻo ʻia nā ʻano kiʻi e nā codec i hoʻouka ʻia;
  • Heluhelu (a kākau) i nā kiʻi mai kahi faila, hoʻomanaʻo, a i ʻole kāu kumu ʻikepili ponoʻī;
  • E hoʻoholo ana i ke ʻano kiʻi ma o ka hoʻonui ʻana i ka faila, a i ʻole helu kupua;
  • Nā palapala i kākoʻo ʻia i kēia manawa: png (heluhelu, Windows wale nō), JPEG (heluhelu, kākau) PNG (heluhelu, kākau).
    Ke hoʻomaka nei ka hana e hoʻohui i nā ʻano hou. Kākoʻo ʻia ʻo KSquirrel-libs e pili ana i nā ʻano 60 ma kekahi ala a i ʻole kekahi, ʻo nā palapala kaulana loa i ka laina mua;

  • Hiki i nā hana heluhelu ke hoʻopuka mau i nā pika ma ka ʻano RGB a me RGBA;
  • Hiki i kekahi mau codecs ke hoʻopuka i nā pika ma kahi papa inoa nui aʻe o nā ʻano;
  • Hiki i ka hapa nui o nā codec ke hoʻopuka i nā pika SOURCE. He mea pono kēia, no ka laʻana, no ka poʻe makemake e kiʻi i ka ʻike piha mai nā kiʻi CMYK a i ʻole YCCK;
  • Heluhelu a kākau i nā moʻolelo ICC;
  • Nā laʻana ma C, Qt, SDL;
  • Paepae i kākoʻo ʻia:
    Windows (mea hoʻonoho), macOS (brew) a me Linux (Debian).

ʻAʻole hāʻawi ʻo SAIL:

  • Hoʻoponopono kiʻi;
  • Nā hana hoʻololi kala kala ʻē aʻe i hāʻawi ʻia e nā codecs lalo (libjpeg, etc.);
  • Nā hana hoʻokele kala (hoʻohana i nā ʻaoʻao ICC, etc.)

ʻO ka hiʻohiʻona maʻalahi o ka decoding ma C:

struct sail_context *context;

SAIL_TRY(sail_init(&context));

struct sail_image *kiʻi;
char unsigned *image_pixels;

SAIL_TRY(sail_read(ala,
pōʻaiapili,
&kiʻi,
(ʻaʻohe **)&kiʻi_pixels));

/*
* Eia ka hana ʻana i nā pika i loaʻa.
* No ka hana ʻana i kēia, e hoʻohana i ke kiʻi->ākea, kiʻi->kiʻekiʻe, kiʻi->bytes_per_line,
* a me ke kiʻi->pixel_format.
*/

/* Hoʻomaʻemaʻe */
manuahi(image_pixels);
sail_destroy_image(kiʻi);

ʻO ka wehewehe pōkole o nā pae API:

  • Newbie: "Makemake wau e hoʻoiho i kēia JPEG"
  • Advanced: "Makemake au e hoʻouka i kēia GIF animated mai ka hoʻomanaʻo"
  • Ka luʻu kai hohonu: "Makemake au e hoʻouka i kēia GIF animated mai ka hoʻomanaʻo ʻana a loaʻa iā ʻoe ka mana piha ma luna o nā codecs a me nā huahana pixel aʻu e koho ai."
  • ʻIke ʻenehana: "Makemake au i nā mea āpau ma luna, a me kaʻu kumu ʻikepili ponoʻī"

E alakaʻi i nā mea hoʻokūkū mai ka wahi like:

  • Kiʻi manuahi
  • DevIL
  • SDL_Kiʻi
  • ʻO WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Nā ʻokoʻa mai nā hale waihona puke ʻē aʻe:

  • API kanaka me nā mea i manaʻo ʻia - kiʻi, palettes, etc.
  • Hiki i ka hapa nui o nā codec ke hoʻopuka ma mua o nā pika RGB/RGBA wale nō.
  • Hiki i ka hapa nui o nā codec ke hoʻopuka i nā pika kumu me ka hoʻololi ʻole ʻana i RGB.
  • Hiki iā ʻoe ke kākau i nā codecs ma kekahi ʻōlelo, a hoʻohui pū / wehe iā lākou me ka ʻole o ka hoʻopili hou ʻana i ka papahana holoʻokoʻa.
  • E mālama i ka ʻike e pili ana i ke kiʻi kumu.
  • ʻO "Probing" ke kaʻina o ka loaʻa ʻana o ka ʻike e pili ana i kahi kiʻi me ka wehe ʻole ʻana i ka ʻikepili pixel.
  • Nui a me ka wikiwiki.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka