इलस्ट्रेटर द्वारा निर्यात किए गए svg में व्यूबॉक्स विशेषता बदलें


38

मेरे पास व्यूबॉक्स के साथ एक एसवीजी फ़ाइल है = "- 155.7 -99 510 510"। मेरा मानना ​​है कि यह मैक ओएस एक्स पूर्वावलोकन -155.7 -99 में पथों की भरपाई करता है। जब मैं इलस्ट्रेटर में एसवीजी खोलता हूं, तो रास्ते बिल्कुल भी ऑफसेट नहीं होते हैं। मैं इस svg को ऐसे कैसे निर्यात करूँ:

  1. व्यूबॉक्स = "0 0 510 510"
  2. और सभी रास्तों ने -155.7 -99 के सेट को बंद कर दिया है

मैंने आर्टबोर्ड की स्थिति को बदलने की कोशिश की है लेकिन व्यूबॉक्स की उत्पत्ति कभी भी 0,0 नहीं है।

जवाबों:


6

मैंने एसवीजी पर थोड़ा शोध किया और जाहिर तौर पर व्यूबॉक्स एक तत्व नहीं है जो इलस्ट्रेटर के माध्यम से निर्यात योग्य है। व्यूबॉक्स तत्व केवल कुछ कार्यक्रमों के अनुकूल है जो इस तत्व का उपयोग करने या इसे हेरफेर करने के लिए चुना गया है। अफसोस की बात है, इलस्ट्रेटर उनमें से एक नहीं है।

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

अभी के लिए आप केवल इलस्ट्रेटर में डिज़ाइन का काम कर सकते हैं और फ़ाइल डेटा के भीतर व्यूबॉक्स की ऑफसेट और स्थिति के लिए सभी अतिरिक्त कोड। आप बस आर्टबोर्ड्स चौड़ाई + ऊँचाई / X + Y स्थिति को बदलकर और फिर ऑब्जेक्ट्स के आकार और स्थिति विशेषताओं को बदलकर एक छद्म दृश्य-बॉक्स बना सकते हैं। लेकिन जब तक वे संपादन योग्य व्यूबॉक्स सुविधाओं के साथ इलस्ट्रेटर को अपडेट जारी नहीं करते हैं, तब तक एक सच्चे व्यूबॉक्स विशेषता कभी नहीं होगी।

इलस्ट्रेटर में एसवीजी प्रारूप पर कुछ पढ़ना: एसवीजी प्रारूप में एडोब इलस्ट्रेटर सेव


1
इलस्ट्रेटर Illustrator CC (v 17.x) के रूप में व्यूबॉक्स विशेषता का निर्यात करता है।
जेक विल्सन

33

मैंने इस समस्या में कई बार भाग लिया है, और केवल एक चीज जिसने कभी मेरे लिए काम किया है वह है एसवीजी व्यूबॉक्स को ठीक 0, 0 पर रीसेट करने के लिए जब इलस्ट्रेटर से निर्यात करना एक नया रिक्त दस्तावेज़ बनाना है और इसमें कलाकृति को कॉपी और पेस्ट करना है।

इस अछूते डिफ़ॉल्ट आर्टबोर्ड के ऊपरी बाएं कोने को व्यू बॉक्स के बिंदु 0, 0 के रूप में निर्यात किया जाएगा। स्मार्ट गाइड ( cmd-u) या alignविंडो सेट का उपयोग करें Align to Artboardयदि आपको अपनी कलाकृति की आवश्यकता ठीक 0, 0 से शुरू हो।

आप नीचे के दाएं कोने से सुरक्षित रूप से आर्टबोर्ड का आकार बदल सकते हैं, लेकिन अगर आप ऊपरी बाएं कोने को घुमाते हैं तो चीजें गलत होने लगती हैं। आर्टबोर्ड के शीर्ष बाएं कोने में ले जाने या AI में SVG फ़ाइलों को आयात करने से लगता है कि शासकों, आर्टबोर्डों के बीच कुछ प्रकार के अजीब आंतरिक डिस्कनेक्ट हो गए हैं और कुछ प्रकार के अदृश्य गुप्त दृश्यबॉक्स मूल बिंदु केवल इलस्ट्रेटर के लिए जाने जाते हैं।


AFAICT, जैसा कि ज्यादातर चीजें वेब या उभरती हुई तकनीक के साथ होती हैं, एसवीजी के लिए एडोब का दृष्टिकोण कुछ गंभीर रूप से एक साथ फेंकने का रहा है, ताकि वे एक प्रेस विज्ञप्ति में इसके बारे में दावा कर सकें, फिर इसे छोटी, अधूरी और अधूरी छोड़ दें, यह दिखावा नहीं है। मौजूद है और यह 1998 की तरह चल रहा है।


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

1
अजीब - निश्चित रूप से CS6 में काम कर सकता है। CS6 और CC के बीच परिवर्तन होना चाहिए - हालांकि यह एक अजीब बदलाव है।
user56reinstatemonica8

1
@ user568458 यह वह तकनीक है जिसका मैं उपयोग भी करता हूं, सटीक नहीं बल्कि बहुत समान। इलस्ट्रेटर में 'आर्टबोर्ड' में कोई भी परिवर्तन viewboxएसवीजी को निर्यात करने पर बदले जा रहे मूल्यों के लिए सीधे अनुवाद करेगा । आप एक नया दस्तावेज़ बनाने और सभी कलाकृति पर नकल करने में पूरी तरह से सही हैं। आपके उत्तर को सही +1 के रूप में चिह्नित किया जाना चाहिए।
टेरी

2
एडोब एसवीजी का एक बड़ा समर्थक था, लेकिन जब एसवीजी उभर रहा था, तो उन्होंने मैक्रोमीडिया अधिग्रहण के बाद कई वर्षों में इस मोर्चे पर कुछ भी नहीं किया क्योंकि वे चाहते थे कि फ्लैश सफल हो।
joojaa

1
मैं एडोब इलस्ट्रेटर CC 18.1.0 का उपयोग कर रहा हूं और एक पूरी तरह से नया दस्तावेज़ बना रहा हूं, मेरे svg को कॉपी और पेस्ट कर रहा हूं, और फिर resaving कर रहा है। मैं यह भी सुनिश्चित कर सकता हूं कि Preserve Illustrator Editing Capabilitiesमैं पहली बार सिर्फ इस मामले में बचत करूं कि मुझे अधिक समायोजन करने की आवश्यकता है और फिर मुझे लगता है कि सब कुछ बहुत अच्छा है, मैं इसे बिना सहेजता हूं (फ़ाइल आकार में वृद्धि बहुत महत्वपूर्ण है इसलिए आप करना चाहते हैं यह)
अगस्त

7

मुझे पता है कि इस विषय के लिए बहुत देर हो चुकी है, लेकिन मेरे पास यही मुद्दा था और निम्नलिखित किया।

  1. एक टेक्स्ट एडिटर में SVG खोलें और व्यूबॉक्स विशेषता को 0 0 xy में बदलें
  2. इसे सहेजें और इलस्ट्रेटर में फिर से खोलें
  3. कलाकृति अब आर्टबोर्ड के बाहर तैनात की जाएगी - इसे 0 0 पर वापस लाएं
  4. सहेजें और पूर्वावलोकन करें, यह सब ठीक होना चाहिए।

आशा है कि यह किसी और की मदद करता है।


हैलो मार्क, GDSE में आपका स्वागत है और आपके उत्तर के लिए धन्यवाद। यदि आपका कोई प्रश्न है, तो कृपया अपनी प्रतिष्ठा के पर्याप्त होने पर (20) एक बार सहायता केंद्र या चैट में हम में से किसी एक को देखें । योगदान देते रहें और साइट का आनंद लें!
Zach Saucier

मैंने width="<W>" height="<H>"अपने पसंदीदा टेक्स्ट एडिटर में एसवीजी टैग को जोड़ने में मदद की है (जहां <W>और <H>दशमलव संख्या होगी)।
२१:२

4

मुझे एक समान समस्या थी कि मेरे एआई ने एसवीजी को बनाया और पूर्ण ब्राउज़र विंडो में विस्तारित नहीं किया गया था, क्योंकि एआई आर्टबोर्ड के आकार को बदलता रहता है और केंद्र के बारे में भूल जाता है।

इसे ठीक करने का एकमात्र तरीका इंकस्केप में एक अंतिम मैनुअल प्रोसेसिंग कदम है।

  • Inkscape में SVG खोलें
  • फ़ाइल -> दस्तावेज़ गुणों के तहत कैनवास का आकार बदलें
  • टूलबार के संपादन में इसे चुनें और डब्ल्यू में प्रवेश करके अपनी कलाकृति का आकार बदलें और स्थानांतरित करें

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

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


0

मैंने यह पता लगा लिया है। आखिरकार! ऐसा करने का एक सरल तरीका है। इस तरह:

<svg id="xbox" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 60.7"><title>xbox</title><rect width="200" height="60.68" style="fill:none"/><path d="M195.2,49.2l-11.8-16-11.5,16h-4.8L181.2,30,168.4,12.8h4.8l10.2,14,10.5-14h4.8L185.9,30,200,49.2Zm-90.7,0L90.4,30l12.8-17.2H98.4l-10.5,14-10.3-14H72.8L85.6,30l-14,19.2h4.8l11.5-16,11.8,16Z" style="fill:#0f7c10"/><path d="M131,31.3l-2.2-1.6a8.2,8.2,0,0,0,4.4-7c0-2.6-.9-9.9-12.1-9.9H106.4V28.4h-4.8l-2.9,3.5h7.7V49.2h14.7c8.3,0,13.1-4.2,13.1-10.9a8.6,8.6,0,0,0-3.2-7m-20.5-15h10.6c3.2,0,8,1,8,6.1s-2.9,6-8,6H110.5Zm10.6,29.1H110.5V31.9h10.6c4.1,0,8.9,1.3,8.9,6.4s-5.4,7.1-8.9,7.1m32.3-33.6c-10.3,0-17.3,7.7-17.3,19.2s7,18.8,17.3,18.8,17.5-7.6,17.5-18.8-7.3-19.2-17.5-19.2m0,34.2c-7.7,0-13.1-6.1-13.1-15s5.4-15.3,13.1-15.3S166.8,22,166.8,31s-5.5,15-13.4,15M8.9,8.6h0A31,31,0,0,0,0,30.4,32.5,32.5,0,0,0,6.1,48.9h.3C4.2,41.5,16,24.3,22,16.9h0C11.8,6.4,8.9,8.9,8.9,8.6m42.9,0h0a31,31,0,0,1,8.9,21.8,32.5,32.5,0,0,1-6.1,18.5h-.3c2.2-7-9.6-24.3-15.6-31.6h0C48.9,7,51.8,9.6,51.8,9.3M30.4,0A29.9,29.9,0,0,1,46.3,4.5h0c0,.3,0,.3-.3.3C40.3,3.5,31.3,8.3,30.4,8.9h0C28.1,7.7,19.8,3.2,14.7,4.8a.3.3,0,0,1-.3-.3h0A30,30,0,0,1,30.4,0m0,24.3h0c9.2,7,24.9,24.3,20.1,29.1h0a31.5,31.5,0,0,1-40.3,0h0C5.8,48.6,21.1,31.3,30.4,24.3h0" style="fill:#0f7c10"/></svg>

समस्या तब थी जब आप इलस्ट्रेटर (जैसा कि कई करते हैं) से एक छवि निर्यात करते हैं, आर्टबोर्ड निर्यात किए गए एसवीजी में शामिल नहीं है। रास्तों के पास अपनी गणना को आधार बनाने के लिए कुछ भी नहीं है।

मेरे मामले में मेरी छवियों के लिए अधिकतम ऊंचाई थी 100pxऔर मुझे उनकी चौड़ाई और ऊंचाई के आधार पर इन छवियों के लिए सीएसएस शैलियों को आधार बनाने की आवश्यकता थी। सीएसएस में मैं vwइकाइयों का उपयोग करता हूं , या सिर्फ सादे पुराने 100%अगर एसवीजी ब्लॉक स्थान को भरना है। यह अच्छी तरह से तराजू। इस तरह आप सीएसएस में चौड़ाई और ऊंचाई सेट करने के बारे में गड़बड़ नहीं करते हैं ताकि यह सही ढंग से प्रदर्शित हो सके।

मैं प्रत्येक लोगो से गुज़रा और ऊंचाई को 100pxपहलू अनुपात के आधार पर ऑटो की गणना करने दिया। मैं फिर किसी भी अप्रयुक्त स्थान को हटाने के लिए आर्टबोर्ड को लोगो पर फिट करता हूं।

मैंने एक आयत का चयन किया और भरण और स्ट्रोक को बंद कर दिया और मैंने सुनिश्चित किया कि यह आर्टबोर्ड के समान सटीक आकार का था। इस खाली वस्तु को सबसे पीछे रखें। अब जब आप पथ निर्यात करते हैं तो गणनाओं पर काम करने के लिए एक आधार होगा।

कोड में ऐसा करने के लिए ऐसा प्रतीत होता है कि आप पथों को एक में लपेट सकते हैं ( rectयह चौड़ाई और ऊँचाई सेट कर सकता है, और फिर आप इसे viewBoxउसी पर रख सकते हैं (पहलू अनुपात समान रखें)। जैसा कि ऊपर के उदाहरण में दिखाया गया है। मैंने वास्तव में इसका परीक्षण नहीं किया है लेकिन मैं परीक्षण और अद्यतन करूंगा।


0

मैं Inkscape का उपयोग करके इसे ठीक करने में सक्षम था । इलस्ट्रेटर की तरह लगता है SVG फ़ाइलों के लिए खराब समर्थन है।

  1. Inkscape में svg फाइल खोलें CTRL + O
  2. फिर एक नई फाइल बनाएं CTRL + N
  3. CTRL + SHIFT + D दस्तावेज़ गुण और आर्टबोर्ड आकार समायोजित करें। 3
  4. नई बनाई गई फ़ाइल में svg का चयन करें और कॉपी करें।
  5. अब स्थिति और आकार मान बदलकर संपत्ति को समायोजित करें। मूल स्थिति और चौड़ाई और ऊंचाई को दस्तावेज़ आकार के रूप में स्थापित करने की तरह। 5
  6. नई फ़ाइल सहेजें।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.