เป็นไปได้หรือไม่ที่จะฝังหรือเชื่อมโยงเอกสาร SVG inkscape หนึ่งเข้ากับเอกสารอื่น?


16

ฉันต้องการใช้ไฟล์ SVG ขนาดเล็กหนึ่งไฟล์ (สร้างขึ้นด้วย Inkscape) และฝังหรือลิงก์ไปยังอีกไฟล์หนึ่ง (ใหญ่กว่า) เมื่อแสดงโดยเบราว์เซอร์ฉันหวังว่าจะเห็นขนาดเล็กกว่าปรากฏขึ้นภายในตัวยึดตำแหน่งของตัวที่ใหญ่กว่า

มันเป็นไปได้?

คำตอบ:


8

ชอบที่<use>จะ<image>แสดงในภายหลังที่ความละเอียดคงที่และไม่ปรับขนาดตามวัตถุเวกเตอร์ปกติที่ทำในเอกสารปัจจุบัน http://www.w3.org/TR/SVG11/struct.html#ImageElement

แต่องค์ประกอบ<use>ไม่สามารถอ้างอิงไฟล์ SVG ทั้งหมดได้xlink:hrefแอตทริบิวต์ดังกล่าวเป็นการอ้างอิงถึงองค์ประกอบ / ชิ้นส่วนภายในเอกสาร SVG ( 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"/>

การสนับสนุนคุณสมบัตินั้นอาจแตกต่างกันไปสำหรับบรรณาธิการ / ผู้ดู SVG ที่แตกต่างกันเท่าที่ฉันรู้ว่าควรใช้งานได้ (อย่างน้อย) ใน Inkscape, Firefox และ Batik


ฉันคิดว่าน่าสังเกตว่า Inkscape ได้เพิ่มการรองรับคุณสมบัตินี้ในรุ่น 0.91 ฉันเพิ่ม Inkscape ppa เพื่อรับรุ่นนี้ใน Mint 17 (14.04 Ubuntu)
Leif Carlsen

@LeifCarlsen เป็นไงบ้าง? ฉันดูเหมือนจะไม่พบวิธีการทำใน 0.91
rac2030

1
ฉันสร้างไฟล์ด้วยคุณสมบัตินี้นอก Inkscape และดู / แสดงผลด้วย Inkscape
Leif Carlsen

อืม ... โอเคฉันพยายามและล้มเหลวก่อนหน้านี้ แต่บางทีฉันต้องพยายามให้มากขึ้น
rac2030

ฮาไม่เป็นไร ... โดยปกติจะเป็นผู้ใช้ที่ทำผิดพลาด ... เพื่อการอ้างอิงฉันแค่ลืมเพิ่มนิยาม xlink ... ฉันเพิ่ม namespace ไปยังแท็ก svg ด้านบนและทันใดนั้นมันก็เริ่มทำงาน ;-)
rac2030

3

ใช้imageองค์ประกอบและอ้างอิงไฟล์ SVG ของคุณ เพื่อความสนุกสนานให้บันทึกสิ่งต่อไปนี้เป็น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>

ที่มา: https://stackoverflow.com/questions/5451135/embed-svg-in-svg/5451238#5451238


อย่างใดผลลัพธ์นี้ในข้อความ "ไม่พบรูปภาพที่เชื่อมโยง" กับ Inkscape 0.48.4 บน Windows อย่างน้อย
mlt

อาจนำหน้า xlink: href ด้วย "./" หรือ ทำงานได้สำหรับฉัน
Berteh
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.