Akwai ɗakin karatu na yanke hoton hoto SAIL

Karkashin lasisin MIT aka buga Laburaren yanke hoto na dandamali SAIL. SAIL shine sake suna codecs daga mai duba hoto mara tsayi wanda aka sake rubutawa a cikin C KSquirrel, amma tare da babban matakin Abstract API da haɓakawa da yawa. Masu sauraro masu manufa: masu kallon hoto, haɓaka wasan, loda hotuna zuwa ƙwaƙwalwar ajiya don wasu dalilai. Ana ci gaba da ɗakin karatu, amma an riga an yi amfani da shi. Ba a da garantin daidaitawar binary da lambar tushe a wannan matakin ci gaba.

Ayyukan:

  • Labura mai sauƙi, ƙarami da sauri da aka rubuta a cikin C ba tare da dogaro na ɓangare na uku ba (sai dai codecs);
  • Mai sauƙi, mai fahimta kuma a lokaci guda API mai ƙarfi don duk buƙatu;
  • Abubuwan ɗaure don C++;
  • Siffofin hoto suna goyan bayan kodecs masu ɗorewa;
  • Karanta (kuma rubuta) hotuna daga fayil, ƙwaƙwalwa, ko ma tushen bayanan ku;
  • Ƙayyade nau'in hoton ta hanyar tsawo na fayil, ko ta lambar sihiri;
  • Tsarukan da ake tallafawa a halin yanzu: png (karanta, Windows kawai), JPEG (karanta, rubuta) PNG (karanta, rubuta).
    Ana ci gaba da aiki don ƙara sabbin tsari. KSquirrel-libs yana goyan bayan nau'ikan nau'ikan nau'ikan 60 ta hanya ɗaya ko wata, mafi mashahurin tsarin shine farkon layi;

  • Ayyukan karantawa koyaushe na iya fitar da pixels a tsarin RGB da RGBA;
  • Wasu codecs na iya fitar da pixels a cikin jerin mafi girma na tsari;
  • Yawancin codecs kuma suna iya fitar da pixels SOURCE. Wannan yana da amfani, alal misali, ga waɗanda suke son samun cikakken bayani daga hotunan CMYK ko YCCK;
  • Karatu da rubuta bayanan ICC;
  • Misalai a C, Qt, SDL;
  • Goyan bayan dandamali:
    Windows (mai sakawa), macOS (brew) da Linux (Debian).

Abin da SAIL bai bayar ba:

  • Gyaran hoto;
  • Ayyukan canza sararin launi ban da waɗanda aka samar ta hanyar codecs masu tushe (libjpeg, da sauransu);
  • Ayyukan sarrafa launi (amfani da bayanan ICC, da sauransu)

Misali mafi sauƙi na yankewa a cikin C:

struct sail_context * yanayin;

SAIL_TRY (sail_init (&context));

struct sail_image *hoton;
char mara sa hannu *hoton_pixels;

SAIL_TRY (karanta jirgin ruwa (hanya,
Mahalli,
&hoto,
(void **)&image_pixels));

/*
* Anan aiwatar da pixels da aka karɓa.
Don yin wannan, yi amfani da image-> nisa, image->tsawo, image->bytes_per_line,
* da hoto-> pixel_format.
*/

/* Tsaftace */
kyauta (image_pixels);
sail_destroy_image (hoton);

Taƙaitaccen bayanin matakan API:

  • Newbie: "Ina so in sauke wannan JPEG kawai"
  • Na ci gaba: "Ina so in loda wannan GIF mai rai daga ƙwaƙwalwar ajiya"
  • Mai nutsar ruwa mai zurfi: "Ina so in loda wannan GIF mai rai daga ƙwaƙwalwar ajiya kuma ina da cikakken iko akan codecs da fitarwar pixel waɗanda na zaɓa."
  • Diver Technical: "Ina son duk abin da ke sama, da tushen bayanan kaina"

Masu fafatawa kai tsaye daga yanki ɗaya:

  • Hoton Kyauta
  • Iblis
  • SDL_Hoton
  • WIC
  • imlib2
  • Ƙarfafa.GIL
  • gdk-pixbuf

Bambance-bambance daga sauran ɗakunan karatu:

  • API ɗin ɗan adam tare da abubuwan da ake tsammani - hotuna, palettes, da sauransu.
  • Yawancin codecs na iya fitarwa fiye da pixels RGB/RGBA kawai.
  • Yawancin codecs na iya fitar da pixels na asali ba tare da tuba zuwa RGB ba.
  • Kuna iya rubuta codecs a kowane harshe, sannan kuma ƙara / cire su ba tare da sake haɗa dukkan aikin ba.
  • Ajiye bayanai game da ainihin hoton.
  • "Bincike" shine tsarin samun bayanai game da hoto ba tare da yanke bayanan pixel ba.
  • Girma da sauri.

source: budenet.ru

Add a comment