2009-10-06 14 views
59

मैं सी # का उपयोग कर एक एसवीजी फ़ाइल उत्पन्न करना चाहता हूं। मेरे पास पहले से ही पीएनजी और ईएमएफ प्रारूपों में उन्हें आकर्षित करने के लिए कोड है (फ्रेमवर्क के मानक वर्ग System.Drawing.Imaging.Metafile और ZedGraph का उपयोग करके)। एसवीजी को उस कोड को अनुकूलित करने के लिए आप क्या करने की सिफारिश कर सकते हैं? अधिमानतः मैं कुछ पुस्तकालय (मुफ्त या नहीं) ढूंढना चाहता हूं जो System.Drawing.Graphics इंटरफ़ेस की नकल करेगा।.NET/C# में एसवीजी ड्राइंग?

+28

बहुत रचनात्मक सवाल !, पृथ्वी पर क्यों बंद किया गया था? –

+2

@gyozokudor: पुस्तकालयों/उपकरणों के लिए सिफारिश के लिए पूछे जाने वाले प्रश्न यहां बंद हैं ... यह एक ऐसी नीति है जो प्रश्न सबमिट किए जाने पर नहीं थी। अगर आप इस नीति पर चर्चा करना चाहते हैं, तो मेटा.स्टैक एक्सचेंज.कॉम पर जाएं। – liori

+11

मुझे नहीं पता कि इसके बारे में क्या चर्चा करनी है, मुझे यह स्पष्ट लगता है कि ऐसे प्रश्नों की अनुमति दी जानी चाहिए। –

उत्तर

35

SVG framework in C# and an SVG-GDI+ bridge प्रोजेक्ट देखें।

ऊपर वेब पेज से ...

SvgGdi पुल वर्गों कि SvgNet का उपयोग एसवीजी और GDI + के बीच अनुवाद करने का एक सेट है। इसका अर्थ यह है कि ग्राफिक्स को खींचने के लिए जीडीआई + का उपयोग करने वाला कोई भी कोड के रूप में आसानी से एसवीजी आउटपुट कर सकता है, बस SvgGraphics ऑब्जेक्ट में प्लग करके। यह ऑब्जेक्ट नियमित रूप से नियमित .NET ग्राफिक्स ऑब्जेक्ट जैसा ही है, लेकिन एक एसवीजी पेड़ बनाता है। यहां तक ​​कि hatched जैसे चीजें भरती हैं और लाइन एंकर लागू होते हैं।

+4

+1 आपके बेहतर Google-fu के लिए। – MusiGenesis

+1

+1, मेरा google-fu यह नहीं मिला। – liori

+0

यह मुख्य प्रोजेक्ट पेज प्रतीत होता है: http://www.jbrowse.com/svgnet/। ऐसा लगता है कि लाइब्रेरी 6 साल तक विकसित नहीं हुई है। मैं शायद अभी भी इसे जांचूँगा। – liori

7
+0

-1, सवाल एसवीजी से पीएनजी निर्यात करने के बारे में था। एसवीजीपीएड एक संपादक है, और यह आलेख से स्पष्ट नहीं है, न तो ऐप और न ही पुस्तकालय यह कर सकता है। (यदि ऐसा होता है, तो आपको केवल एक लिंक से अधिक छोड़ देना चाहिए था) – DevTheo

+0

@DevTheo: आप प्रश्न और लिंक किए गए लेख को अधिक बारीकी से पढ़ना चाहेंगे। ओपी एक पीएनजी को एसवीजी में बदलने की कोशिश नहीं कर रहा है; ओपी में प्राइमेटिव्स को पीएनजी और ईएमएफ प्रारूपों में खींचने के लिए मौजूदा कोड है, और एसवीजी प्रारूप में ऐसा करना चाहता है। मैं जिस नमूना से जुड़ा हुआ हूं वह ठीक करने के लिए कोड प्रदान करता है। – MusiGenesis

+0

ठीक है, माफ करना .. मैंने अपनी समस्या को प्रश्न पर धक्का दिया .. माफ करना .. और मैं वोट दोबारा नहीं कर सकता ... मैंने उस बिंदु को किसी भी तरह से याद किया .. – DevTheo

3

एसवीजी के रूप में मूल रूप से एक XML दस्तावेज है - आप "ड्राइंग" अपने आप को लागू कर सकते हैं। W3C SVG spec पर चश्मे की जांच करें। मैंने एसवीजी हस्ताक्षर छवियों को उत्पन्न करने के लिए इसे एक बार किया था, जेनरेट की गई छवि का परीक्षण करने के लिए इसमें कुछ घंटों और एक फ़ायरफ़ॉक्स लिया गया था।

बेशक यह लागू होता है यदि आप उपयोगकर्ता इनपुट से छवि उत्पन्न कर रहे हैं या यदि आप किसी अन्य वेक्टर छवि प्रारूप से रूपांतरण करने में कुछ समय व्यतीत नहीं करते हैं।

पीएस आप सिस्टम की नकल करने के लिए अपना स्वयं का रैपर बना सकते हैं। ड्रॉइंग। ग्राफिक्स, उदा। ड्रॉलाइन() को आंतरिक बफर में जोड़ने के लिए और इसी तरह।

+4

समस्या समय है: हम इस कार्य पर जितना संभव हो उतना समय बिताना चाहते हैं, और एसवीजी समर्थन हमारे लिए वास्तव में महत्वपूर्ण नहीं है। इसलिए हम ऐसा कुछ ढूंढ रहे हैं जो संभवतः जीडीआई एपीआई के लिए इन-प्लेस प्रतिस्थापन के रूप में उपयोग किया जा सकता है ... या कम से कम कुछ जो अधिक अनुकूलन की आवश्यकता नहीं होगी। आपका सुझाव पहले से ही हमारे द्वारा विचार किया गया था। – liori

+0

मैं देखता हूं। फिर एसडीएक्स 2000 सुझाव इस के लिए सबसे तार्किक दृष्टिकोण है (- – Audrius

+7

ठीक है, मैं बस एक साल के लिए सब्सक्राइब कर दूंगा ताकि मैं इसे कार्यान्वित कर सकूं। –

7

मैंने इसे http://svg.codeplex.com/ का उपयोग किया और मैं इससे काफी संतुष्ट हूं। अभी भी कुछ कीड़े हैं इसलिए आपको http://svg.codeplex.com/SourceControl/PatchList.aspx में पैच पर एक नज़र रखना चाहिए।

जब मैं गलतियों की खोज करता हूं तो मैं हल कर सकता हूं कि मैं उन्हें सीधे वहां पोस्ट कर सकता हूं। लेकिन वहां लोगों द्वारा मूल्यांकन करने में कुछ समय लगता है। पैच को देखने और उन्हें स्वयं लागू करने का एक बेहतर विचार है।

पुस्तकालय सबसे सामान्य आवश्यकताओं के लिए पर्याप्त रूप से पर्याप्त है। वास्तव में फैंसी सामान के लिए, इसे बेहतर विचारों की आवश्यकता है ...

17

हमने जीथ्यूब पर सी # .NET एसवीजी लाइब्रेरी का सार्वजनिक कांटा बना दिया है।

यह बहुत एक आप codeplex पर मिल से अधिक सुधार हुआ है, तो कृपया एक नजर है और यह कांटा के रूप में आप की तरह:

https://github.com/vvvv/SVG

संपादित करें: बस आपको यह बताने के लिए दिसंबर के रूप में 2014:

जबकि अन्य वर्षों से मृत लगते हैं, यह अभी भी सक्रिय है। लेकिन हम निश्चित रूप से अन्य डेवलपर्स से कुछ मदद का उपयोग कर सकते हैं।

+2

बहुत बढ़िया! मैं मूल एसवीजी घटक का उपयोग कर रहा था, फिर यह पोस्ट मिला और ऊपर था बस कुछ सेकंड में अपने अद्यतन घटक के साथ चलने में! धन्यवाद! –