SAIL Bilddekodéierungsbibliothéik verfügbar

Ënner MIT Lizenz publizéiert Kräiz-Plattform Bild decoding Bibliothéik SAIL. SAIL ass e Rebranding vu Codecs aus engem laang net-ënnerstëtzten Image Viewer op C KSquirrel, awer mat engem héijen abstrakte API a ville Verbesserungen. Zilpublikum: Bildbetrachter, Spillentwécklung, Luede Biller an Erënnerung fir aner Zwecker. D'Bibliothéik ass ënner Entwécklung, awer ass scho benotzbar. Binär a Quellcode Kompatibilitéit ass net op dëser Etapp vun der Entwécklung garantéiert.

Features:

  • Eng einfach, kompakt a séier Bibliothéik geschriwwen an C ouni Drëtt Partei Ofhängegkeeten (ausser Codecs);
  • Einfach, verständlech a gläichzäiteg mächteg API fir all Bedierfnesser;
  • Bindungen fir C++;
  • Bildformate ginn duerch dynamesch geluede Codecs ënnerstëtzt;
  • Liesen (a schreiwen) Biller aus engem Fichier, Erënnerung, oder souguer Är eege Daten Quell;
  • Bestëmmung vum Bildtyp duerch Dateieverlängerung, oder duerch magesch Zuel;
  • Aktuell ënnerstëtzt Formater: png (liesen, nëmmen Windows), JPEG (liesen, schreiwen) PNG (liesen, schreiwen).
    Et gëtt geschafft fir nei Formater derbäi ze ginn. KSquirrel-libs ënnerstëtzt ongeféier 60 Formater op déi eng oder aner Manéier, déi populärste Formater sinn éischt an der Linn;

  • Liesoperatiounen kënnen ëmmer Pixel am RGB- a RGBA-Format erausginn;
  • E puer Codecs kënnen Pixel an enger nach méi grousser Lëscht vu Formater erausginn;
  • Déi meescht Codecs kënnen och SOURCE Pixel ausginn. Dëst ass nëtzlech, zum Beispill, fir déi, déi voll Informatioun vu CMYK oder YCCK Biller kréien wëllen;
  • Liesen a Schreiwen ICC Profiler;
  • Beispiller an C, Qt, SDL;
  • Ënnerstëtzt Plattformen:
    Windows (Installateur), macOS (brew) a Linux (Debian).

Wat SAIL net ubitt:

  • Bild Redaktioun;
  • Faarfraumkonvertéierungsfunktiounen aner wéi déi vun de Basisdaten Codecs (libjpeg, etc.);
  • Faarfmanagement Funktiounen (Benotzung vun ICC Profiler, asw.)

Dat einfachst Beispill vun Decodéierung am C:

struct sail_context *kontext;

SAIL_TRY(sail_init(&context));

struct sail_image *image;
net ënnerschriwwen Char *image_pixels;

SAIL_TRY(sail_read(path,
Kontext,
&bild,
(void **)&image_pixels));

/*
* Hei veraarbecht déi kritt Pixelen.
* Fir dëst ze maachen, benotzt Bild-> Breet, Bild-> Héicht, Bild-> Bytes_per_Linn,
* an Bild->Pixel_format.
*/

/* Botzen */
fräi (image_pixels);
sail_destroy_image(Bild);

Kuerz Beschreiwung vun API Niveauen:

  • Newbie: "Ech wëll just dëse JPEG eroflueden"
  • Fortgeschratt: "Ech wëll dësen animéierten GIF aus der Erënnerung lueden"
  • Deep Sea Diver: "Ech wëll dësen animéierten GIF aus der Erënnerung lueden a voll Kontroll iwwer d'Codecs an d'Pixeloutput hunn, déi ech wielen."
  • Technesch Taucher: "Ech wëll alles uewen, a meng eegen Datequell"

Direkte Konkurrenten aus dem selwechte Beräich:

  • Gratis Bild
  • DevIL
  • SDL_Bild
  • WIC
  • imlib2
  • Boost.GIL
  • gdk-pixbuf

Differenzen vun anere Bibliothéiken:

  • Mënsch API mat erwaarten Entitéiten - Biller, Palette, etc.
  • Déi meescht Codecs kënne méi wéi nëmmen RGB / RGBA Pixel ausginn.
  • Déi meescht Codecs kënnen originell Pixel ausginn ouni Konversioun op RGB.
  • Dir kënnt Codecs an all Sprooch schreiwen, an och addéieren / läschen ouni de ganze Projet nei ze kompiléieren.
  • Erhaalen Informatiounen iwwert d'Original Bild.
  • "Probéieren" ass de Prozess fir Informatioun iwwer e Bild ze kréien ouni d'Pixeldaten ze dekodéieren.
  • Gréisst a Vitesse.

Source: opennet.ru

Setzt e Commentaire