SAIL ఇమేజ్ డీకోడింగ్ లైబ్రరీ అందుబాటులో ఉంది

MIT లైసెన్స్ కింద ప్రచురించబడింది క్రాస్-ప్లాట్‌ఫారమ్ ఇమేజ్ డీకోడింగ్ లైబ్రరీ SAIL. SAIL అనేది దీర్ఘకాలంగా సపోర్టు చేయని ఇమేజ్ వ్యూయర్ నుండి C లో తిరిగి వ్రాయబడిన కోడెక్‌ల రీబ్రాండింగ్ కె స్క్విరెల్, కానీ అధిక-స్థాయి నైరూప్య API మరియు అనేక మెరుగుదలలతో. లక్ష్య ప్రేక్షకులు: ఇమేజ్ వీక్షకులు, గేమ్ అభివృద్ధి, ఇతర ప్రయోజనాల కోసం చిత్రాలను మెమరీలోకి లోడ్ చేయడం. లైబ్రరీ అభివృద్ధిలో ఉంది, కానీ ఇప్పటికే ఉపయోగించదగినది. ఈ అభివృద్ధి దశలో బైనరీ మరియు సోర్స్ కోడ్ అనుకూలత హామీ ఇవ్వబడదు.

ఫీచర్స్:

  • థర్డ్-పార్టీ డిపెండెన్సీలు లేకుండా (కోడెక్‌లు మినహా) Cలో వ్రాయబడిన సరళమైన, కాంపాక్ట్ మరియు వేగవంతమైన లైబ్రరీ;
  • అన్ని అవసరాలకు సాధారణ, అర్థమయ్యే మరియు అదే సమయంలో శక్తివంతమైన API;
  • C++ కోసం బైండింగ్‌లు;
  • డైనమిక్‌గా లోడ్ చేయబడిన కోడెక్‌ల ద్వారా ఇమేజ్ ఫార్మాట్‌లకు మద్దతు ఉంది;
  • ఫైల్, మెమరీ లేదా మీ స్వంత డేటా మూలం నుండి చిత్రాలను చదవండి (మరియు వ్రాయండి);
  • ఫైల్ పొడిగింపు లేదా ద్వారా చిత్ర రకాన్ని నిర్ణయించడం మేజిక్ సంఖ్య;
  • ప్రస్తుతం మద్దతు ఉన్న ఫార్మాట్‌లు: png (చదవడానికి, విండోస్ మాత్రమే), JPEG (చదవడానికి, వ్రాయడానికి) PNG (చదవడానికి, వ్రాయడానికి).
    కొత్త ఫార్మాట్‌లను జోడించే పని జరుగుతోంది. KSquirrel-libs దాదాపు 60 ఫార్మాట్‌లకు ఒక విధంగా లేదా మరొక విధంగా మద్దతునిస్తుంది, అత్యంత ప్రజాదరణ పొందిన ఫార్మాట్‌లు మొదటి వరుసలో ఉన్నాయి;

  • రీడ్ ఆపరేషన్‌లు ఎల్లప్పుడూ RGB మరియు RGBA ఆకృతిలో పిక్సెల్‌లను అవుట్‌పుట్ చేయగలవు;
  • కొన్ని కోడెక్‌లు పిక్సెల్‌లను ఇంకా పెద్ద ఫార్మాట్‌ల జాబితాలో అవుట్‌పుట్ చేయగలవు;
  • చాలా కోడెక్‌లు SOURCE పిక్సెల్‌లను కూడా అవుట్‌పుట్ చేయగలవు. ఉదాహరణకు, CMYK లేదా YCCK చిత్రాల నుండి పూర్తి సమాచారాన్ని పొందాలనుకునే వారికి ఇది ఉపయోగకరంగా ఉంటుంది;
  • ICC ప్రొఫైల్‌లను చదవడం మరియు వ్రాయడం;
  • C, Qt, SDLలో ఉదాహరణలు;
  • మద్దతు ఉన్న ప్లాట్‌ఫారమ్‌లు:
    విండోస్ (ఇన్‌స్టాలర్), మాకోస్ (బ్రూ) మరియు లైనక్స్ (డెబియన్).

SAIL ఏమి అందించదు:

  • చిత్ర సవరణ;
  • అంతర్లీన కోడెక్‌లు (libjpeg, మొదలైనవి) అందించినవి కాకుండా కలర్ స్పేస్ కన్వర్షన్ ఫంక్షన్‌లు;
  • రంగు నిర్వహణ విధులు (ICC ప్రొఫైల్‌ల ఉపయోగం మొదలైనవి)

C లో డీకోడింగ్ యొక్క సరళమైన ఉదాహరణ:

struct sail_context *context;

SAIL_TRY(sail_init(&context));

struct sail_image *image;
సంతకం చేయని చార్ *image_pixels;

SAIL_TRY(సెయిల్_రీడ్(మార్గం,
సందర్భం,
&చిత్రం,
(శూన్యం **)&image_pixels));

/*
* ఇక్కడ అందుకున్న పిక్సెల్‌లను ప్రాసెస్ చేయండి.
* దీన్ని చేయడానికి, ఇమేజ్->వెడల్పు, ఇమేజ్->ఎత్తు, ఇమేజ్->బైట్స్_పర్_లైన్,
* మరియు చిత్రం-> pixel_format.
*/

/* శుబ్రం చేయి */
ఉచిత (image_pixels);
sail_destroy_image(చిత్రం);

API స్థాయిల సంక్షిప్త వివరణ:

  • కొత్త వ్యక్తి: "నేను ఈ JPEGని డౌన్‌లోడ్ చేయాలనుకుంటున్నాను"
  • అధునాతనమైనది: "నేను ఈ యానిమేటెడ్ GIFని మెమరీ నుండి లోడ్ చేయాలనుకుంటున్నాను"
  • డీప్ సీ డైవర్: "నేను ఈ యానిమేటెడ్ GIFని మెమరీ నుండి లోడ్ చేయాలనుకుంటున్నాను మరియు నేను ఎంచుకున్న కోడెక్‌లు మరియు పిక్సెల్ అవుట్‌పుట్‌పై పూర్తి నియంత్రణను కలిగి ఉండాలనుకుంటున్నాను."
  • టెక్నికల్ డైవర్: “నాకు పైవన్నీ కావాలి మరియు నా స్వంత డేటా సోర్స్”

అదే ప్రాంతం నుండి ప్రత్యక్ష పోటీదారులు:

  • ఉచిత చిత్రం
  • డెవిల్
  • SDL_చిత్రం
  • WIC
  • imlib2
  • బూస్ట్.GIL
  • gdk-pixbuf

ఇతర లైబ్రరీల నుండి తేడాలు:

  • ఊహించిన ఎంటిటీలతో మానవ API - చిత్రాలు, ప్యాలెట్‌లు మొదలైనవి.
  • చాలా కోడెక్‌లు కేవలం RGB/RGBA పిక్సెల్‌ల కంటే ఎక్కువ అవుట్‌పుట్ చేయగలవు.
  • చాలా కోడెక్‌లు RGBకి మార్చకుండా అసలు పిక్సెల్‌లను అవుట్‌పుట్ చేయగలవు.
  • మీరు ఏ భాషలోనైనా కోడెక్‌లను వ్రాయవచ్చు మరియు మొత్తం ప్రాజెక్ట్‌ను తిరిగి కంపైల్ చేయకుండా వాటిని జోడించవచ్చు/తీసివేయవచ్చు.
  • అసలు చిత్రం గురించి సమాచారాన్ని భద్రపరచండి.
  • "ప్రోబింగ్" అనేది పిక్సెల్ డేటాను డీకోడ్ చేయకుండా ఇమేజ్ గురించి సమాచారాన్ని పొందే ప్రక్రియ.
  • పరిమాణం మరియు వేగం.

మూలం: opennet.ru

ఒక వ్యాఖ్యను జోడించండి