2012-10-11 16 views
9

मुझे आश्चर्य है कि एसवीजी में परिवर्तन के साथ नेस्टेड समूहों को फ़्लैट करने के लिए कोई कमांड लाइन उपकरण उपलब्ध है या नहीं?एसवीजी नेस्टेड ट्रांसफॉर्मेशन को फ़्लैट करने के लिए टूल

मेरे विशेष मामले में, मैं एक सीएडी-सॉफ्टवेयर को एसवीजी में उत्पादित पीडीएफ में परिवर्तित कर रहा हूं और फिर कुछ तत्व जोड़ रहा हूं और संशोधित एसवीजी को देखने के लिए वेब पेज पर प्रकाशित कर रहा हूं। एसवीजी का प्रतिक्रिया समय बहुत सुस्त है (पैनिंग और ज़ूमिंग के लिए) और मैंने पाया कि यह एसवीजी के अंदर घोंसला वाले समूहों की एक बड़ी संख्या के कारण होता है, अक्सर कई 100 गहराई तक। एसवीजी में प्रत्येक तत्व के लिए, ब्राउज़र को अपने सभी मूल नोड्स में स्थिति की गणना करने की आवश्यकता होती है ...

स्पष्ट रूप से यह हास्यास्पद है, क्योंकि इन सभी तत्वों की आवश्यकता एक एकल परिवर्तन (मैट्रिक्स) है। तो मुझे आश्चर्य है कि अगर किसी को इस उपकरण को फ़्लैट करने के लिए कोई उपकरण पता है (या सी # या डेल्फी कार्यान्वयन जो ऐसा करेगा ...)।

+0

क्या आपको कभी इसका कोई अच्छा समाधान मिला है? –

+0

@ टॉमहॉल: PStill के अलावा, कोई समाधान नहीं। मुझे लगता है कि किसी भी कोड के लिए कई पॉलिलाइन (पथ) को सरल आकार में परिवर्तित करना बहुत जटिल हो सकता है। – Optavius

+0

अब तक का सबसे अच्छा विकल्प एडोब पीडीएफ में "फ़्लैटन फॉर्म फ़ील्ड्स" विकल्प का उपयोग करना है जब इसे "अनुकूलित पीडीएफ" के रूप में सहेजना है (यह "ऑब्जेक्ट्स को छोड़ना" का हिस्सा है)। यह कम से कम घोंसले को हटा देता है, भले ही यह वस्तुओं की संख्या को कम नहीं करता है। – Optavius

उत्तर

0

आपको SVG Cleaner के साथ जाना पड़ सकता है। दुर्भाग्य से यह एक जीयूआई उपकरण है, इसलिए यह वास्तव में आपकी आवश्यकताओं के अनुरूप नहीं है लेकिन यह एक बैच प्रोसेसिंग दर्शन प्रदान करता है जो उपयोगी हो सकता है।

+1

दुर्भाग्य से, एसवीजी क्लीनर अब तक नहीं जाता है। मैं वास्तव में चाहता हूं कि इस बकवास को '< पथ डी = "m0,841.61h5.67" /><जी ट्रांसफॉर्म = "अनुवाद (1.42,2.27374 ई -013)"><पथ डी = "m0,841.61h5.67" /> ...' –

1

धन्यवाद Delapouite,

इस बीच मैं इस एक पाया: (PStill)। यह संरचना (पीडीएफ से पीडीएफ) को फ़्लैट करने का एक सही काम करता है, लेकिन परिणामी एसवीजी में अभी भी बहुत सारे तत्व हैं जो इसे ब्राउज़र के लिए काफी उपयोग करने योग्य बनाते हैं। सीडी सिस्टम क्या पीडीएफ में उत्पन्न होता है यह वास्तव में परेशानी है: एक लंबे रास्ते के बजाय बहुत सारे छोटे पथ। मुझे यकीन है कि अभी भी अनुकूलन के लिए कमरा है ... एक दिन :-)

0

इंकस्केप ग्राफिक्स संपादक में परिवर्तनों को फ़्लैट करने का एक विकल्प है।
तो आप इसे प्राप्त करने के लिए इंकस्केप टर्मिनल कमांड का उपयोग कर सकते हैं लेकिन आपको यह देखना होगा कि ऐसा आदेश मौजूद है या नहीं।

+1

इंकस्केप नौकरी (कम से कम जीयूआई में) करता है, जहां तक ​​मैं कह सकता हूं, लेकिन यह एक बहुत ही सीमित कार्य है: मुझे सभी ऑब्जेक्ट्स चुनने की आवश्यकता है, फिर उन्हें गठबंधन करें, फिर उन्हें संशोधित करें और उन्हें गठबंधन करें, और तब तक दोहराएं जब तक मुझे यकीन न हो कि समूह के समूह के लिए कोई और समूह नहीं है। प्रत्येक बार यह एक निश्चित प्रसंस्करण समय लेता है, इसलिए यह काफी कठिन प्रक्रिया बन जाता है। – Optavius

5

सबसे अच्छा मुझे मिला है svgo https://github.com/svg/svgo लेकिन यह अभी भी संतोषजनक नहीं है। एसवीजीओ का लक्ष्य एक छोटी एसवीजी फ़ाइल का उत्पादन करना है। इसका मतलब है कि यदि एक परिवर्तन एक छोटी एसवीजी फ़ाइल के लिए अनुमति देता है तो इसे रखा जाता है। मेरे उद्देश्य ओपी के समान है लेकिन थोड़ा अलग है। मैं कुछ ऐसा ढूंढ रहा हूं जो एसवीजी को केवल मूल पथ & तत्वों के लिए फ़्लैटन और पूरी तरह से सरल बना सकता है।

+0

https://jakearchibald.github.io/svgomg/ svgo पर बनाया गया यह अनुमति देता है - ' <जी ट्रांसफॉर्म =" घुमाएं (90,267.715,566.295) "> <जी ट्रांसफॉर्म =" अनुवाद (1.42, -2.83) "> <पथ डी =" एम -300,700 एच 50 "स्ट्रोक =" टमाटर "/> <जी को बदलने = "का अनुवाद (-10,2.64)"> <पथ घ = "मीटर 10,201 एच 90" स्ट्रोक = "चूना" /> ' – Ruskin

+0

मैं' <पथ डी = "एम 137 0v350" स्ट्रोक = "टमाटर" /> < पथ डी = "एम 0 204h90" स्ट्रोक = "# 0 एफ 0" /> '... कमांड लाइन एसवीजीओ के माध्यम से संभवतः संभव है। – Ruskin

-1

मैं इंकस्केप में नया हूं, लेकिन पुराना जीआईएमपी हूं।

मुझे लगता है कि इंकस्केप में "एक्सटेंशन" फ़ोल्डर है, जिसके भीतर पाइथन प्रोग्राम पाए जाते हैं।

मुझे संदेह है कि इंस्केप की एक समान कार्यक्षमता है (हालांकि यह सहायता में तुरंत स्पष्ट नहीं थी) उपयोगकर्ताओं को अपने स्वयं के कस्टम एक्सटेंशन लिखने की अनुमति देने में जीआईएमपी को। जीआईएमपी में, सबसे सरल स्क्रिप्ट बस अपने वर्कफ़्लो में मेनू से मेन्यू से चुनने वाले मैन्युअल चरणों को स्वचालित करती हैं।

हालांकि, मेन्यू पर जो पेशकश की जाती है उससे अधिक परिष्कृत प्रसंस्करण संभव है।

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