क्या एक एसवीजी दस्तावेज़ को एक दूसरे के अंदर एम्बेड या लिंक करना संभव है?


16

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

क्या यह संभव है?

जवाबों:


8

के लिए पसंद <use>करते हैं<image>जैसा कि बाद में एक निश्चित रिज़ॉल्यूशन में प्रस्तुत किया गया है और वर्तमान दस्तावेज़ में नियमित वेक्टर ऑब्जेक्ट के रूप में स्केल नहीं है, । http://www.w3.org/TR/SVG11/struct.html#ImageElement

लेकिन तत्व <use>संपूर्ण एसवीजी फाइलों का संदर्भ नहीं दे सकता है, इसकी xlink:hrefविशेषता एक एसवीजी दस्तावेज के भीतर एक तत्व / टुकड़े का संदर्भ है ( http://www.w3.org/TR/SVG11/struct.html#UseElement )। 'उपयोग' तत्व किसी भी स्थानीय या गैर-स्थानीय संसाधन को संदर्भित कर सकता है।

उदाहरण:

MyLibrary.svg:
<svg (...)>
        <rect x="0" y="0" width="200" inkscape:label="upper-left-blue"
              style="fill:#729fcf;fill-opacity:1;fill-rule:nonzero;stroke:none"
              id="upper-left-blue" height="200"/>

UseParts.svg:
        <use x="0" y="0" width="400" xmlns:xlink="http://www.w3.org/1999/xlink"
             xlink:href="MyLibrary.svg#upper-left-blue" xlink:type="simple"
             xlink:actuate="onLoad" height="400" id="use8793" xlink:show="embed"/>

विभिन्न एसवीजी संपादकों / दर्शकों के लिए उस सुविधा का समर्थन अलग-अलग हो सकता है, जहां तक ​​मुझे पता है कि इसे इंकस्केप, फ़ायरफ़ॉक्स और बाटिक में काम करना चाहिए (कम से कम)।


मुझे लगता है कि यह ध्यान देने योग्य है कि इंकस्केप ने 0.91 रिलीज में इस सुविधा के लिए समर्थन जोड़ा। मैंने मिंट 17 (14.04 उबंटू) पर इस संस्करण को प्राप्त करने के लिए इंकस्केप पीपीए को जोड़ा।
लीफ कार्लसन 8

@LeifCarlsen वास्तव में कैसे? मुझे नहीं लगता कि यह 0.91 में कैसे करना है
rac2030

1
मैं इस सुविधा के साथ फाइल Inkscape के बाहर उत्पन्न करता हूं और Inkscape के साथ दृश्य / रेंडर करता हूं।
लीफ कार्लसन

हम्मम ... ठीक है, मैंने कोशिश की और इससे पहले असफल हो गया, लेकिन शायद मुझे और अधिक प्रयास करने की आवश्यकता है
rac2030

Ha nevermind ... आमतौर पर इसका उपयोगकर्ता जो गलती करता है ... संदर्भ के लिए मैं सिर्फ xlink परिभाषा जोड़ना भूल गया ... मैंने शीर्ष svg टैग में नाम स्थान जोड़ा और अचानक यह काम करना शुरू कर दिया; ;-)
rac2030

3

imageतत्व का उपयोग करें और अपनी एसवीजी फ़ाइल को देखें। मज़े के लिए, निम्न को सहेजें recursion.svg:

<svg width="100%" height="100%" viewBox="-100 -100 200 200" version="1.1"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <circle cx="-50" cy="-50" r="30" style="fill:red" />
  <image x="10" y="20" width="80" height="80" xlink:href="recursion.svg" />
</svg>

स्रोत: /programming/5451135/embed-svg-in-svg/5451238#5451238


किसी भी तरह विंडोज में कम से कम 0.48.4 इंच के साथ "लिंक्ड इमेज में" नहीं मिला "संदेश का यह परिणाम है।
20

शायद xlink उपसर्ग: "/ ./" के साथ href? मेरे लिये कार्य करता है।
बरतेह
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.