Ile-ikawe iyipada aworan SAIL wa

Labẹ iwe-aṣẹ MIT atejade agbelebu-Syeed image ikawe iyipada SAIL. SAIL jẹ atunkọ ti awọn kodẹki lati oluwo aworan ti ko ni atilẹyin gigun ti a tun kọ ni C KSquirrel, ṣugbọn pẹlu API áljẹbrà ti o ga ati ọpọlọpọ awọn ilọsiwaju. Awọn olugbo ibi-afẹde: awọn oluwo aworan, idagbasoke ere, ikojọpọ awọn aworan sinu iranti fun awọn idi miiran. Ile-ikawe wa labẹ idagbasoke, ṣugbọn o ti ṣee lo tẹlẹ. Alakomeji ati ibamu koodu orisun ko ni iṣeduro ni ipele idagbasoke yii.

Awọn ẹya ara ẹrọ:

  • Ile-ikawe ti o rọrun, iwapọ ati iyara ti a kọ sinu C laisi awọn igbẹkẹle ẹnikẹta (ayafi awọn kodẹki);
  • Rọrun, oye ati ni akoko kanna API alagbara fun gbogbo awọn aini;
  • Awọn isopọ fun C ++;
  • Awọn ọna kika aworan jẹ atilẹyin nipasẹ awọn kodẹki ti kojọpọ;
  • Ka (ki o si kọ) awọn aworan lati faili kan, iranti, tabi paapaa orisun data tirẹ;
  • Ṣiṣe ipinnu iru aworan nipasẹ itẹsiwaju faili, tabi nipasẹ idan nọmba;
  • Awọn ọna kika atilẹyin lọwọlọwọ: png (ka, Windows nikan), JPEG (ka, kọ) PNG (ka, kọ).
    Iṣẹ ti nlọ lọwọ lati ṣafikun awọn ọna kika tuntun. KSquirrel-libs ṣe atilẹyin nipa awọn ọna kika 60 ni ọna kan tabi omiiran, awọn ọna kika olokiki julọ jẹ akọkọ ni laini;

  • Awọn iṣẹ kika le ṣe awọn piksẹli nigbagbogbo ni ọna kika RGB ati RGBA;
  • Diẹ ninu awọn codecs le ṣe awọn piksẹli ni atokọ ti o tobi pupọ ti awọn ọna kika;
  • Pupọ awọn kodẹki tun le gbe awọn piksẹli SOURCE jade. Eyi wulo, fun apẹẹrẹ, fun awọn ti o fẹ lati gba alaye ni kikun lati awọn aworan CMYK tabi YCCK;
  • Kika ati kikọ awọn profaili ICC;
  • Awọn apẹẹrẹ ni C, Qt, SDL;
  • Awọn iru ẹrọ atilẹyin:
    Windows (insitola), macOS (brew) ati Lainos (Debian).

Ohun ti SAIL ko pese:

  • Aworan ṣiṣatunkọ;
  • Awọn iṣẹ iyipada aaye awọ yatọ si awọn ti a pese nipasẹ awọn kodẹki abẹlẹ (libjpeg, bbl);
  • Awọn iṣẹ iṣakoso awọ (lilo awọn profaili ICC, ati bẹbẹ lọ)

Apẹẹrẹ ti o rọrun julọ ti iyipada ni C:

struct sail_context * o tọ;

SAIL_TRY (sail_init (& o tọ));

struct sail_image * aworan;
charless * image_pixels;

SAIL_TRY(sail_kika(ona,
àyíká ọ̀rọ̀,
&aworan,
(asan **) & image_pixels));

/*
* Nibi ṣe ilana awọn piksẹli ti o gba.
* Lati ṣe eyi, lo aworan->iwọn, aworan->giga, aworan->bytes_per_line,
* ati aworan-> pixel_format.
*/

/* Nu kuro */
free (image_pixels);
sail_destroy_image (aworan);

Apejuwe kukuru ti awọn ipele API:

  • Newbie: "Mo kan fẹ ṣe igbasilẹ JPEG yii"
  • To ti ni ilọsiwaju: "Mo fẹ lati kojọpọ GIF ti ere idaraya lati iranti"
  • Omuwe okun ti o jinlẹ: “Mo fẹ lati gbe GIF ti ere idaraya lati iranti ati ni iṣakoso ni kikun lori awọn kodẹki ati iṣelọpọ ẹbun ti Mo yan.”
  • Diver Imọ-ẹrọ: “Mo fẹ ohun gbogbo loke, ati orisun data ti ara mi”

Awọn oludije taara lati agbegbe kanna:

  • Aworan Ọfẹ
  • Bìlísì
  • SDL_Aworan
  • WIC
  • imlib2
  • Igbelaruge.GIL
  • gdk-pixbuf

Awọn iyatọ lati awọn ile-ikawe miiran:

  • API eniyan pẹlu awọn nkan ti a nireti - awọn aworan, awọn paleti, ati bẹbẹ lọ.
  • Pupọ awọn kodẹki le ṣejade diẹ sii ju awọn piksẹli RGB/RGBA nikan lọ.
  • Pupọ awọn kodẹki le gbe awọn piksẹli atilẹba jade laisi iyipada si RGB.
  • O le kọ awọn koodu kodẹki ni eyikeyi ede, ati tun ṣafikun/yọ wọn kuro laisi atunko gbogbo iṣẹ akanṣe naa.
  • Tọju alaye nipa aworan atilẹba.
  • "Iwadii" jẹ ilana ti gbigba alaye nipa aworan kan laisi iyipada data pixel.
  • Iwọn ati iyara.

orisun: opennet.ru

Fi ọrọìwòye kun