Ofrohet biblioteka e dekodimit të imazhit SAIL

Nën licencën MIT botuar biblioteka e dekodimit të imazheve ndër-platformë SAIL. SAIL është një riemërtim i kodekëve nga një shikues imazhi i pambështetur prej kohësh i rishkruar në C Ketri, por me një API abstrakte të nivelit të lartë dhe përmirësime të shumta. Audienca e synuar: shikuesit e imazheve, zhvillimi i lojës, ngarkimi i imazheve në kujtesë për qëllime të tjera. Biblioteka është në zhvillim e sipër, por tashmë është e përdorshme. Përputhshmëria binar dhe kodi burimor nuk garantohet në këtë fazë të zhvillimit.

Features:

  • Një bibliotekë e thjeshtë, kompakte dhe e shpejtë e shkruar në C pa varësi nga palët e treta (përveç kodekëve);
  • API e thjeshtë, e kuptueshme dhe në të njëjtën kohë e fuqishme për të gjitha nevojat;
  • Lidhjet për C++;
  • Formatet e imazhit mbështeten nga kodekë të ngarkuar në mënyrë dinamike;
  • Lexoni (dhe shkruani) imazhe nga një skedar, memorie, apo edhe nga burimi juaj i të dhënave;
  • Përcaktimi i llojit të imazhit sipas shtrirjes së skedarit ose sipas numër magjik;
  • Formatet e mbështetura aktualisht: png (lexo, vetëm Windows), JPEG (lexo, shkruaj) PNG (lexo, shkruaj).
    Po punohet për shtimin e formateve të reja. KSquirrel-libs mbështeti rreth 60 formate në një mënyrë ose në një tjetër, formatet më të njohura janë të parat në radhë;

  • Operacionet e leximit mund të nxjerrin gjithmonë pikselë në formatin RGB dhe RGBA;
  • Disa kodekë mund të nxjerrin pikselë në një listë edhe më të madhe formatesh;
  • Shumica e kodekëve mund të nxjerrin gjithashtu pikselë SOURCE. Kjo është e dobishme, për shembull, për ata që duan të marrin informacion të plotë nga imazhet CMYK ose YCCK;
  • Leximi dhe shkrimi i profileve të ICC;
  • Shembuj në C, Qt, SDL;
  • Platformat e mbështetura:
    Windows (instalues), macOS (brew) dhe Linux (Debian).

Çfarë nuk ofron SAIL:

  • Redaktimi i imazhit;
  • Funksionet e konvertimit të hapësirës së ngjyrave të ndryshme nga ato të ofruara nga kodekët themelorë (libjpeg, etj.);
  • Funksionet e menaxhimit të ngjyrave (përdorimi i profileve ICC, etj.)

Shembulli më i thjeshtë i deshifrimit në C:

struct sail_context *context;

SAIL_TRY(lundrimi_fillimi(&konteksti));

struct sail_image *image;
karakter i panënshkruar *image_pixels;

SAIL_TRY(lundrimi_lexuar(shtegu,
kontekst,
&imazh,
(i pavlefshëm **)&image_pixels));

/*
* Këtu përpunoni pikselët e marrë.
* Për ta bërë këtë, përdorni image->width, image->height, image->bytes_per_line,
* dhe imazh->format_piksel.
*/

/* Pastrimi */
i lirë (imazhi_pikselë);
lundroni_shkatërroj_imazhin(imazhin);

Përshkrim i shkurtër i niveleve të API:

  • Newbie: "Unë thjesht dua të shkarkoj këtë JPEG"
  • E avancuar: "Dua ta ngarkoj këtë GIF të animuar nga kujtesa"
  • Zhytësi në det të thellë: "Dua të ngarkoj këtë GIF të animuar nga memoria dhe të kem kontroll të plotë mbi kodekët dhe daljen e pikselëve që zgjedh."
  • Zhytësi teknik: "Unë dua gjithçka më lart, dhe burimin tim të të dhënave"

Konkurrentët e drejtpërdrejtë nga e njëjta zonë:

  • Imazhi i lirë
  • Djall
  • SDL_Image
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Dallimet nga bibliotekat e tjera:

  • API njerëzore me entitete të pritshme - imazhe, paleta, etj.
  • Shumica e kodekëve mund të nxjerrin më shumë se vetëm pikselë RGB/RGBA.
  • Shumica e kodekëve mund të nxjerrin pikselë origjinalë pa u konvertuar në RGB.
  • Ju mund të shkruani kodekë në çdo gjuhë, dhe gjithashtu t'i shtoni/fshini ato pa e rikompiluar të gjithë projektin.
  • Ruani informacionin rreth imazhit origjinal.
  • "Studimi" është procesi i marrjes së informacionit për një imazh pa deshifruar të dhënat e pikselit.
  • Madhësia dhe shpejtësia.

Burimi: opennet.ru

Shto një koment