O dan drwydded MIT cyhoeddwyd llyfrgell datgodio delwedd traws-lwyfan SAIL. Mae SAIL yn ail-frandio codecau o wyliwr delwedd heb gefnogaeth hir a ailysgrifennwyd yn C KSquirrel, ond gydag API haniaethol lefel uchel a nifer o welliannau. Cynulleidfa darged: gwylwyr delwedd, datblygu gΓͺm, llwytho delweddau i'r cof at ddibenion eraill. Mae'r llyfrgell wrthi'n cael ei datblygu, ond mae modd ei defnyddio eisoes. Nid yw cydnawsedd deuaidd a chod ffynhonnell wedi'i warantu ar y cam hwn o'r datblygiad.
Nodweddion:
Llyfrgell syml, gryno a chyflym wedi'i hysgrifennu yn C heb ddibyniaethau trydydd parti (ac eithrio codecau);
API syml, dealladwy ac ar yr un pryd pwerus ar gyfer pob angen;
Rhwymiadau ar gyfer C++;
Cefnogir fformatau delwedd gan godecs wedi'u llwytho'n ddeinamig;
Darllen (ac ysgrifennu) delweddau o ffeil, cof, neu hyd yn oed eich ffynhonnell ddata eich hun;
Pennu'r math o ddelwedd trwy estyniad ffeil, neu gan rhif hud;
Fformatau a gefnogir ar hyn o bryd: png (darllen, Windows yn unig), JPEG (darllen, ysgrifennu) PNG (darllen, ysgrifennu).
Mae gwaith yn mynd rhagddo i ychwanegu fformatau newydd. Cefnogodd KSquirrel-libs tua 60 o fformatau mewn un ffordd neu'r llall, mae'r fformatau mwyaf poblogaidd yn y llinell gyntaf;
Gall gweithrediadau darllen bob amser allbwn picsel mewn fformat RGB a RGBA;
Gall rhai codecau allbynnu picsel mewn rhestr hyd yn oed yn fwy o fformatau;
Gall y rhan fwyaf o godecs hefyd allbwn picsel FFYNHONNELL. Mae hyn yn ddefnyddiol, er enghraifft, i'r rhai sydd am gael gwybodaeth lawn o ddelweddau CMYK neu YCCK;
Darllen ac ysgrifennu proffiliau ICC;
Enghreifftiau yn C, Qt, SDL;
Llwyfannau Γ’ chymorth:
Windows (gosodwr), macOS (brew) a Linux (Debian).
Yr hyn nad yw SAIL yn ei ddarparu:
Golygu delwedd;
Swyddogaethau trosi gofod lliw heblaw'r rhai a ddarperir gan godecs gwaelodol (libjpeg, ac ati);
Swyddogaethau rheoli lliw (defnyddio proffiliau ICC, ac ati)
Yr enghraifft symlaf o ddatgodio yn C:
struct sail_context *cyd-destun;
SAIL_TRY(sail_init(&cyd-destun));
struct sail_image *delwedd;
torgoch heb ei arwyddo *image_picsel;
/*
* Yma proseswch y picseli a dderbyniwyd.
* I wneud hyn, defnyddiwch ddelwedd-> lled, delwedd-> uchder, delwedd-> bytes_per_line,
* a delwedd-> pixel_format.
*/
/* Glanhau */
am ddim (delwedd_picsel);
sail_destroy_image(delwedd);
Disgrifiad byr o lefelau API:
Newbie: "Dwi eisiau lawrlwytho'r JPEG hwn"
Uwch: "Rwyf am lwytho'r GIF animeiddiedig hwn o'r cof"
Deifiwr mΓ΄r dwfn: βRwyf am lwytho'r GIF animeiddiedig hwn o'r cof a chael rheolaeth lawn dros y codecau a'r allbwn picsel a ddewisaf.β
Plymiwr Technegol: βRydw i eisiau popeth uchod, a fy ffynhonnell ddata fy hunβ
Cystadleuwyr uniongyrchol o'r un ardal:
Delwedd Rydd
Diafol
SDL_Delwedd
WIC
imlib2
Hwb.GIL
gdk-pixbuf
Gwahaniaethau o lyfrgelloedd eraill:
API dynol gydag endidau disgwyliedig - delweddau, paletau, ac ati.
Gall y rhan fwyaf o godecs allbwn mwy na dim ond picsel RGB/RGBA.
Gall y rhan fwyaf o godecs allbwn picsel gwreiddiol heb eu trosi i RGB.
Gallwch chi ysgrifennu codecau mewn unrhyw iaith, a hefyd ychwanegu / tynnu nhw heb ail-grynhoi'r prosiect cyfan.
Cadw gwybodaeth am y ddelwedd wreiddiol.
βProbingβ yw'r broses o gael gwybodaeth am ddelwedd heb ddadgodio'r data picsel.