2009-07-29 18 views
13

मैं एक अच्छी क्रॉस-प्लेटफार्म 2 डी ड्राइंग लाइब्रेरी की तलाश में हूं जिसे सी ++ से बुलाया जा सकता है और इसका उपयोग कुछ साधारण ज्यामिति को आकर्षित करने के लिए किया जा सकता है; कुछ चार्टों के लिए रेखाएं, आयताकार, मंडल, और पाठ (क्षैतिज और लंबवत), और आउटपुट को पीएनजी में सहेजें।क्रॉस-प्लेटफार्म ड्राइंग लाइब्रेरी

मुझे लगता है कि एक वाणिज्यिक पैकेज ओपन सोर्स पर बेहतर होगा क्योंकि हम लाइसेंसिंग मुद्दों के बारे में चिंता न करना पसंद करेंगे (जब तक कि कोई क्रेडिट क्लॉज वाला बीएसडी स्टाइल लाइसेंस के साथ कुछ न हो)। मैंने काहिरा ग्राफिक्स को देखा है जो वादा करता था, लेकिन पाठ प्रतिपादन बॉक्स के बाहर बकवास की तरह दिखता है, और टेक्स्ट बैक-एंड को अपग्रेड करने से हमें ग़लत लाइसेंस भूमि मिलती है।

मुझे विंडोज, मैक और लिनक्स के लिए इसकी आवश्यकता है। पसंदीदा रूप से कुछ हल्के और एकीकृत करने के लिए सरल। मैंने क्यूटी के बारे में सोचा है लेकिन यह हमारे आवेदन के लिए बहुत भारी है।

इस पर कोई भी विचार अद्भुत होगा।

+2

हां, यह एक दयालु 'QImage' है और' QPainter' को अलग-अलग 'QtPainting' lib के बजाय 'QtGui' में दफनाया गया है। जब उन्होंने क्यूटी 4.0 में लिबियों को विभाजित किया, तो वे 'क्यूप्लिकेशंस' के बिना वास्तव में प्रयोग योग्य नहीं थे, लेकिन आजकल आप उन्हें अलग-अलग धागे में उपयोग कर सकते हैं, इसलिए 'क्यूटीपैटिंग' बहुत समझदारी होगी, आईएमओ। आइए क्यूटी 5 के लिए प्रतीक्षा करें :) –

उत्तर

12

Anti-Grain Geometry की कोशिश करो। विवरण से:

एंटी-ग्रेन ज्यामिति (एजीजी) एक ओपन सोर्स, मुफ्त ग्राफिक लाइब्रेरी है, जो औद्योगिक मानक सी ++ में लिखी गई है। लाइसेंस पृष्ठ पर एजीजी के नियम और शर्तों का वर्णन किया गया है। एजीजी किसी भी ग्राफिक एपीआई या प्रौद्योगिकी पर निर्भर नहीं है। असल में, आप एजीजी को एक प्रतिपादन इंजन के रूप में सोच सकते हैं जो कुछ वेक्टरियल डेटा से स्मृति में पिक्सेल छवियां उत्पन्न करता है। लेकिन निश्चित रूप से, एजीजी उससे भी ज्यादा कुछ कर सकता है। विचारों और AGG के दर्शन कर रहे हैं:

  • विरोधी एलियासिंग।
  • उपपिक्सेल शुद्धता।
  • उच्चतम संभव गुणवत्ता।
  • उच्च प्रदर्शन।
  • प्लेटफार्म स्वतंत्रता और संगतता।
  • लचीलापन और विस्तारशीलता।
  • हल्के डिजाइन।
  • विश्वसनीयता और स्थिरता (संख्यात्मक स्थिरता सहित)।
+0

धन्यवाद, यह मेरी गली में सही दिखता है, मैं इसे जांचने जा रहा हूं। – Gerald

+0

बस दूसरे दिन मैंने देखा कि मेरी जीपीएस इकाई मानचित्र प्रतिपादन के लिए एजीजी का उपयोग कर रही थी। साफ! –

+5

एक एफवाईआई के रूप में, मैंने वाणिज्यिक लाइसेंस प्राप्त करने के संबंध में एजीजी के डेवलपर्स से संपर्क करने के लिए बार-बार कोशिश की, और कभी जवाब नहीं मिला। साइट पर कोई भी समाचार पोस्ट होने के बाद भी 2 साल हो चुके हैं, इसलिए मुझे लगता है कि यह अब समर्थित नहीं है। इसलिए मैंने अपनी जरूरतों के 3 प्लेटफार्मों में अपना खुद का कस्टम समाधान शुरू कर दिया। गैर-जीपीएल लाइसेंस के साथ पुराने संस्करण का उपयोग करते हुए यह अभी भी एक अच्छा समाधान है, इसलिए मैं इसे सबसे अच्छा जवाब के रूप में छोड़ दूंगा, लेकिन मैं अभी असमर्थित लाइब्रेरी से निपटना नहीं चाहता था। – Gerald

1
+2

मैंने एसडीएल और एसएफएमएल दोनों का उपयोग किया है, और मैं दृढ़ता से एसडीएल पर एसएफएमएल की सिफारिश करता हूं। यह सी ++ संरचनाओं (ओओपी, फ़ंक्शन ओवरलोड्स, ...) का उपयोग करता है, और यह बहुत आसान और मजेदार है। मेरे लिए एकमात्र संभावित दोष यह है कि यह अभी भी एसडीएल की तुलना में हालिया लाइब्रेरी है, इसलिए यह स्थिर नहीं हो सकता है। –

+2

भी, एसडीएल सूचीबद्ध प्राइमेटिव्स को आकर्षित करने के लिए कार्यों के साथ नहीं आता है। आपको दूसरों द्वारा किए गए कोड को ढूंढना होगा या उन्हें स्वयं कोड करना होगा। –

2

Antigrain उच्च गुणवत्ता आदिम प्रतिपादन करता है और सही प्रकार फोंट प्रस्तुत करना करने में सक्षम हो रहा है और एक व्यावसायिक अनुरोध पर उपलब्ध लाइसेंस है।

http://www.antigrain.com/

0
+0

... पुस्तकालय नहीं है। – cubuspl42

+0

कृपया पुस्तकालय की अपनी परिभाषा की व्याख्या करें। –

+0

यह ऐसा कुछ है जिसमें कोड है। ओपनजीएल जीपीयू के साथ बात करने के लिए इस्तेमाल किया जाने वाला एक मानक एपीआई है। आप इससे लिंक नहीं कर सकते हैं, आप इसे खरीद नहीं सकते हैं, आप इसे डाउनलोड नहीं कर सकते हैं। वैसे, ओपनजीएल फ़ंक्शंस को सीधे कॉल करना वास्तव में क्रॉस-प्लेटफ़ॉर्म कभी नहीं होता है। एसडीएल या एसएफएमएल जैसी पुस्तकालय हैं। – cubuspl42

1

आप FLTK की कोशिश की है? यह लाइटवेट, क्रॉस-प्लेटफार्म है, 2 डी/3 डी ग्राफिक्स के लिए समर्थन है और एक अच्छा विजेट सेट (एक चार्टिंग घटक सहित) के साथ आता है। एपीआई सरल और सीधे आगे है।

0

मैं एजीजी या काहिरा के लिए जाऊंगा।

1

libgd भी है - सरल एक, लेकिन अच्छी तरह से लिखा गया है।

Cairo Graphics के संबंध में, मुझे विश्वास नहीं है कि यह renders text खराब दिखता है। यदि आप टेक्स्ट प्रतिपादन के बारे में विशेष रूप से चिंतित हैं, तो जनवरी 2010 से State of the Text Rendering काफी अच्छा अवलोकन प्रदान करता है।

+0

मुझे थोड़ा और स्पष्ट होना चाहिए था; काहिरा ग्राफिक्स बड़े पाठ को अच्छी तरह से प्रस्तुत करता है, लेकिन मुझे चार्ट और ग्राफ पर छोटे टेक्स्ट लेबल प्रस्तुत करने की आवश्यकता होती है, और यह बकवास की तरह दिखता है क्योंकि यह इसे प्रस्तुत करने के लिए वेक्टर ग्राफिक्स का उपयोग करता है। जब तक पाठ कम से कम 2-पिक्सेल लाइनों के लिए पर्याप्त होता है, वैसे भी ठीक है, लेकिन फ़ॉन्ट आकार 8 पर कुछ पाठ प्रस्तुत करने का प्रयास करें और देखें कि क्या आप इसे पढ़ सकते हैं;) – Gerald

1

मैं CImg का उपयोग करता हूं: क्रॉस प्लेटफ़ॉर्म (स्वयं निहित एकल शीर्षलेख फ़ाइल), सरल, संक्षिप्त। पीएनजी मूल रूप से समर्थित नहीं है लेकिन छवि मैगिक स्थापित होने पर इसे संभाला जा सकता है (supported formats देखें)।

यह भी देखें related question

+0

मैं सीआईएमजी से बहुत प्रभावित हूं। मैंने कई पुस्तकालयों को एकीकृत करने के लिए सबसे आसान अब तक खेला है। –

6

एक और एक: Skia। सक्रिय विकास, एचडब्ल्यू त्वरण के तहत एंड्रॉइड और क्रोम में प्रयुक्त।

1

आप Allegro 5 (चूंकि एसडीएल और एसएफएमएल का उल्लेख किया गया है) का उपयोग कर सकते हैं। यह आपको आवश्यक सभी प्लेटफॉर्म प्रदान करता है (और अधिक) और आकार प्रस्तुत कर सकते हैं और पीएनजी को सहेज सकते हैं। संस्करण 5 में एक बेहतर एपीआई और हार्डवेयर त्वरण है। इनमें से किसी भी निम्न स्तर के क्रॉस प्लेटफार्म पुस्तकालयों के साथ आपको अपना खुद का चार्टिंग समाधान ढूंढना होगा।

मैंने कुछ नोट्स on my blog एलेग्रो के बारे में और मैक पर इसका उपयोग किया।

+0

यह बहुत अच्छा लग रहा है। क्या आपको पता है कि किसी एप्लिकेशन में इसका उपयोग करना संभव है जिसमें एलेग्रो विंडो प्रबंधन का उपयोग करने के बजाय इसका अपना विंडो प्रबंधन है? – Gerald

संबंधित मुद्दे