SAIL duab decoding tsev qiv ntawv muaj

Raws li MIT daim ntawv tso cai luam tawm cross-platform duab decoding tsev qiv ntawv SAIL. SAIL yog rebranding ntawm codecs los ntawm ib tug ntev-unsupported duab viewer rewritten nyob rau hauv C KSquirrel, tab sis nrog rau qib siab paub daws teeb API thiab ntau yam kev txhim kho. Lub hom phiaj cov neeg tuaj saib: cov duab saib, kev txhim kho kev ua si, thauj cov duab rau hauv nco rau lwm lub hom phiaj. Lub tsev qiv ntawv tab tom txhim kho, tab sis twb siv tau. Binary thiab qhov code compatibility tsis tau lees tias nyob rau theem ntawm txoj kev loj hlob no.

Cov Tsam Thawj:

  • Lub tsev qiv ntawv yooj yim, compact thiab ceev ceev sau hauv C yam tsis muaj kev vam khom thib peb (tshwj tsis yog codecs);
  • Yooj yim, nkag siab thiab tib lub sijhawm muaj zog API rau txhua qhov kev xav tau;
  • Kev khi rau C ++;
  • Cov duab tawm tswv yim txhawb nqa los ntawm dynamically loaded codecs;
  • Nyeem (thiab sau) cov duab los ntawm cov ntaub ntawv, nco, lossis txawm tias koj tus kheej cov ntaub ntawv;
  • Txiav txim siab hom duab los ntawm cov ntaub ntawv txuas ntxiv, lossis los ntawm khawv koob naj npawb;
  • Tam sim no txhawb hom ntawv: png (nyeem, Windows nkaus xwb), JPEG (nyeem, sau) PNG (nyeem, sau).
    Kev ua haujlwm tab tom pib ntxiv cov qauv tshiab. KSquirrel-libs txhawb txog 60 hom ntawv hauv ib txoj kev lossis lwm qhov, cov hom nrov tshaj plaws yog thawj zaug hauv kab;

  • Nyeem cov haujlwm tuaj yeem tso tawm pixels hauv RGB thiab RGBA hom ntawv;
  • Qee tus codecs tuaj yeem tso tawm pixels hauv cov npe loj dua ntawm cov ntawv;
  • Feem ntau cov codecs tuaj yeem tso tawm SOURCE pixels. Qhov no yog qhov tseem ceeb, piv txwv li, rau cov neeg uas xav tau cov ntaub ntawv tag nrho los ntawm CMYK lossis YCCK cov duab;
  • Nyeem thiab sau ICC profiles;
  • Piv txwv hauv C, Qt, SDL;
  • Txhawb nqa platforms:
    Windows (installer), macOS (brew) thiab Linux (Debian).

Dab tsi SAIL tsis muab:

  • Duab kho;
  • Xim qhov chaw hloov dua siab tshiab ua haujlwm dua li cov uas tau muab los ntawm cov codecs hauv qab (libjpeg, thiab lwm yam);
  • Xim tswj kev ua haujlwm (siv ICC profiles, thiab lwm yam)

Qhov yooj yim piv txwv ntawm kev txiav txim siab hauv C:

struct sail_context * ntsiab lus;

SAIL_TRY(sail_init(& ntsiab lus));

struct sail_image * duab;
unsigned char * duab_pixels;

SAIL_TRY(sail_read(txoj kev,
ntsiab lus teb,
& duab,
(void **) & duab_pixels);

/*
* Ntawm no ua cov pixels tau txais.
* Txhawm rau ua qhov no, siv duab-> dav, duab-> qhov siab, duab-> bytes_per_line,
* thiab duab-> pixel_format.
*/

/* Ntxuav */
dawb (duab_pixels);
sail_destroy_image(duab);

Cov lus piav qhia luv luv ntawm API qib:

  • Newbie: "Kuv tsuas yog xav rub tawm JPEG no"
  • Advanced: "Kuv xav thauj cov animated GIF ntawm lub cim xeeb"
  • Tus neeg dhia dej hiav txwv sib sib zog nqus: "Kuv xav thauj cov animated GIF ntawm lub cim xeeb thiab muaj kev tswj hwm tag nrho ntawm cov codecs thiab pixel tso zis uas kuv xaiv."
  • Technical Diver: "Kuv xav tau txhua yam saum toj no, thiab kuv tus kheej cov ntaub ntawv"

Cov neeg sib tw ncaj qha los ntawm tib cheeb tsam:

  • FreeImage
  • DevIL
  • SDL_Image
  • WIC
  • imlib 2
  • Boost.GIL
  • gdk pib

Qhov txawv ntawm lwm lub tsev qiv ntawv:

  • Tib neeg API nrog rau qhov xav tau - cov duab, palettes, thiab lwm yam.
  • Feem ntau cov codecs tuaj yeem tso tawm ntau dua li RGB / RGBA pixels.
  • Feem ntau cov codecs tuaj yeem tso tawm cov pixels qub yam tsis tau hloov pauv mus rau RGB.
  • Koj tuaj yeem sau cov codecs hauv txhua hom lus, thiab ntxiv / tshem tawm yam tsis tau rov ua dua tag nrho cov haujlwm.
  • Khaws cov ntaub ntawv hais txog daim duab qub.
  • "Kev soj ntsuam" yog cov txheej txheem kom tau txais cov ntaub ntawv hais txog cov duab yam tsis tau txiav txim siab cov ntaub ntawv pixel.
  • Qhov loj thiab ceev.

Tau qhov twg los: opennet.ru

Ntxiv ib saib