ग्रंथों, लिनक्स, सी और ओपनग्लल में छवियों को लोड करने के लिए लाइब्रेरी


9

मैं लिनक्स के लिए OpenGL बनावट में छवियों को लोड करने के लिए सरल, स्व-निहित सी लाइब्रेरी की तलाश कर रहा हूं। लाइसेंस काफी उदार होना चाहिए: zlib, bsd, mit या कुछ और। मुझे SOIL मिल गया है , हालाँकि इसे लंबे समय तक अपडेट नहीं किया गया है। क्या कुछ और है, या मुझे खुद लिखना है?

PS मैं glfw का उपयोग करता हूं। छवियों को लोड करने के लिए केवल पदावनत कार्य हैं।

जवाबों:


5

मैं ज्यादातर इमेज लोडिंग के लिए STB Image का उपयोग करता हूं । एक छोटे से स्वयं में कोई स्ट्रिंग नहीं है जो कि पीएनजी और अन्य फ़ाइल स्वरूपों के कार्यान्वयन से जुड़ी हुई है।


3
SOIL stb_image के आसपास एक प्रकाश आवरण है।

आह, मुझे इस बात की जानकारी नहीं थी।
शून्य

11

SOIL बढ़िया काम करता है। अगर "लंबे समय" में अपडेट नहीं किया गया है तो कौन परवाह करता है? इसका मतलब है कि यह स्थिर और अच्छी तरह से समझा जाता है।

(यह वास्तव में 2008 में अपडेट किया गया था, जो बहुत पहले नहीं था।)


इसे देखने वालों के लिए - SOIL iOS पर काम नहीं करता है, इसलिए यदि पोर्टेबिलिटी आपका उद्देश्य है, तो सीधे stb_image का उपयोग करना एक बेहतर विकल्प हो सकता है।
एड रोपल

2

शैतान पर एक नजर है ।


DevIL LGPL के अधीन है। यह मेरे लिए बहुत कम प्रतिबंधात्मक है।
15

1
ध्यान रखें कि जब तक आप मूल स्रोत कोड को संशोधित नहीं करते हैं, तब तक आप एलजीपीएल लाइब्रेरी से लिंक कर सकते हैं और अपने मुख्य कोड को व्यावसायिक उद्देश्यों के लिए बंद / निजी / इस्तेमाल कर सकते हैं।
r2d2rigo

1
मुझे पता है। हालांकि मैं हर चीज को सिंगल फाइल में लिंक करना चाहता हूं।
दोपहर

2

की जाँच करें FreeImage । यह दोहरे लाइसेंस वाला है, आप GPL या उदार FreeImage लाइसेंस चुन सकते हैं। यह SOIL की तुलना में कहीं अधिक छवि प्रारूपों का समर्थन करता है और विकास सक्रिय है।

पुस्तकालय स्वयं C ++ में लिखा गया है, लेकिन इसमें ANSI C इंटरफ़ेस है।

इसके परिचय से:

यह एएनएसआई सी इंटरफ़ेस के लिए धन्यवाद, फ्रीइमेज सी, सी ++, वीबी, सी #, डेल्फी, जावा सहित कई भाषाओं में उपयोग करने योग्य है और साथ ही पर्ल, पायथन, पीएचपी, टीसीएल या रूबी जैसी सामान्य स्क्रिप्टिंग भाषाओं में भी।


ऐसा लगता है कि लाइसेंस पर्याप्त उदार नहीं है।
15

@ मिचस यह सब आपको पुस्तकालय के उपयोग को स्वीकार करना है, अन्यथा आप स्रोतों को संशोधित करने और वाणिज्यिक परियोजनाओं में उपयोग करने के लिए स्वतंत्र हैं। या शायद मैंने लाइसेंस को ध्यान से नहीं पढ़ा?
Oskar N.

मुझे कुछ स्रोत कोड प्रकाशित करने के लिए मजबूर किया जा सकता है।
मीकास

मुझे यकीन नहीं है कि आप उस विचार को कहाँ प्राप्त कर रहे हैं ... क्या आप वास्तव में फ्रीइमेज लाइब्रेरी को संशोधित करने जा रहे हैं (संकेत: शायद नहीं; खुद के साथ ईमानदार रहें)?
क्रिस

यह एक व्यावहारिक आवश्यकता नहीं है। मुझे पता है। मैं और अधिक उदार लाइसेंस के साथ खुश रहूंगा।
मीचस

0

मूर्ख CEGUI लोगों का उत्पादन किया जाता है ।

मैं पीएनजी, टीजीए, जेपीजी, आदि लोड करने का समर्थन करता हूं और इसे एमआईटी लाइसेंस के साथ जारी किया जाता है।

जैसा कि C ++ में लाइब्रेरी में लिखा गया है, आपको खुद को C रैपर लिखना होगा।


समस्या यह है कि मैं एक सी कंपाइलर के साथ सब कुछ संकलित करना चाहता हूं।
माईकस

0

यदि आपको कई स्वरूपों को पढ़ने की आवश्यकता नहीं है, तो अपना लोडर कोड लिखने पर विचार करें। मैं सीधे libjpeg और libpng का उपयोग करता हूं और वे उपयोग करने में काफी आसान हैं। दोनों में बहुत सरल कार्य हैं जो अनिवार्य रूप से RGBA डेटा की एक स्कैनलाइन प्राप्त करते हैं, बस इसे एक सरणी में रखें और फिर OpenGL पर अपलोड करें। दोनों में बहुत उपयोगी और सरल उदाहरण कार्यक्रम हैं।

हालांकि मुझे अन्य प्रारूपों के साथ कोई अनुभव नहीं है। लेकिन ईमानदार होने के लिए, पीएनजी + जेपीईजी हमारी जरूरतों का 100% कवर करता है (जो कि न तो तुच्छ है और न ही शौकीन स्तर - http://www.mysterystudio.com देखें )

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.