Llyfrgell datgodio delweddau SAIL ar gael

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;

SAIL_TRY(hwyl_darllen(llwybr,
cyd-destun,
&delwedd,
(gwag**)&image_pixels));

/*
* 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.
  • Maint a chyflymder.

Ffynhonnell: opennet.ru

Ychwanegu sylw