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;
/*
* ఇక్కడ అందుకున్న పిక్సెల్లను ప్రాసెస్ చేయండి.
* దీన్ని చేయడానికి, ఇమేజ్->వెడల్పు, ఇమేజ్->ఎత్తు, ఇమేజ్->బైట్స్_పర్_లైన్,
* మరియు చిత్రం-> pixel_format.
*/
/* శుబ్రం చేయి */
ఉచిత (image_pixels);
sail_destroy_image(చిత్రం);
API స్థాయిల సంక్షిప్త వివరణ:
కొత్త వ్యక్తి: "నేను ఈ JPEGని డౌన్లోడ్ చేయాలనుకుంటున్నాను"
అధునాతనమైనది: "నేను ఈ యానిమేటెడ్ GIFని మెమరీ నుండి లోడ్ చేయాలనుకుంటున్నాను"
డీప్ సీ డైవర్: "నేను ఈ యానిమేటెడ్ GIFని మెమరీ నుండి లోడ్ చేయాలనుకుంటున్నాను మరియు నేను ఎంచుకున్న కోడెక్లు మరియు పిక్సెల్ అవుట్పుట్పై పూర్తి నియంత్రణను కలిగి ఉండాలనుకుంటున్నాను."
టెక్నికల్ డైవర్: “నాకు పైవన్నీ కావాలి మరియు నా స్వంత డేటా సోర్స్”
అదే ప్రాంతం నుండి ప్రత్యక్ష పోటీదారులు:
ఉచిత చిత్రం
డెవిల్
SDL_చిత్రం
WIC
imlib2
బూస్ట్.GIL
gdk-pixbuf
ఇతర లైబ్రరీల నుండి తేడాలు:
ఊహించిన ఎంటిటీలతో మానవ API - చిత్రాలు, ప్యాలెట్లు మొదలైనవి.
చాలా కోడెక్లు కేవలం RGB/RGBA పిక్సెల్ల కంటే ఎక్కువ అవుట్పుట్ చేయగలవు.
చాలా కోడెక్లు RGBకి మార్చకుండా అసలు పిక్సెల్లను అవుట్పుట్ చేయగలవు.
మీరు ఏ భాషలోనైనా కోడెక్లను వ్రాయవచ్చు మరియు మొత్తం ప్రాజెక్ట్ను తిరిగి కంపైల్ చేయకుండా వాటిని జోడించవచ్చు/తీసివేయవచ్చు.
అసలు చిత్రం గురించి సమాచారాన్ని భద్రపరచండి.
"ప్రోబింగ్" అనేది పిక్సెల్ డేటాను డీకోడ్ చేయకుండా ఇమేజ్ గురించి సమాచారాన్ని పొందే ప్రక్రియ.