Có thể nhúng hoặc liên kết một tài liệu SVG inkscape bên trong một tài liệu khác không?


16

Tôi muốn lấy một tệp SVG nhỏ (được tạo bằng Inkscape) và nhúng hoặc liên kết nó với một tệp khác (lớn hơn). Khi được hiển thị bởi một trình duyệt, tôi hy vọng sẽ thấy một cái nhỏ hơn xuất hiện bên trong một số chỗ dành cho cái lớn hơn.

Có thể không?

Câu trả lời:


8

Thích <use>để <image>càng về sau được hiển thị ở độ phân giải cố định và không quy mô như các đối tượng vector thường xuyên làm trong tài liệu hiện hành. http://www.w3.org/TR/SVG11/struct.html#ImageEuity

Nhưng phần tử <use>không thể tham chiếu toàn bộ tệp SVG, xlink:hrefthuộc tính của nó là tham chiếu đến phần tử / đoạn trong tài liệu SVG ( http://www.w3.org/TR/SVG11/struct.html#UseEuity ). Phần tử 'use' có thể tham chiếu bất kỳ tài nguyên cục bộ hoặc không cục bộ nào.

thí dụ:

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"/>

Hỗ trợ tính năng đó có thể khác nhau đối với các biên tập viên / người xem SVG khác nhau, theo như tôi biết nó sẽ hoạt động (ít nhất) trong Inkscape, Firefox và Batik.


Tôi nghĩ rằng đáng chú ý là Inkscape đã thêm hỗ trợ cho tính năng này trong bản phát hành 0.91. Tôi đã thêm pks Inkscape để có phiên bản này trên Mint 17 (14.04 Ubuntu).
Leif Carlsen

@LeifCarlsen Chính xác như thế nào? Tôi dường như không tìm thấy cách thực hiện trong 0.91
rac2030

1
Tôi tạo các tệp có tính năng này bên ngoài Inkscape và xem / kết xuất với Inkscape.
Leif Carlsen

Hmmm ... ok tôi đã thử và thất bại điều này trước đây nhưng có lẽ tôi cần phải cố gắng hơn nữa
rac2030

Ha nevermind ... thường là người dùng mắc lỗi ... để tham khảo Tôi chỉ quên thêm định nghĩa xlink ... Tôi đã thêm không gian tên vào thẻ svg hàng đầu và đột nhiên nó bắt đầu hoạt động ;-)
rac2030

3

Sử dụng imagephần tử và tham chiếu tệp SVG của bạn. Để giải trí, hãy lưu lại những điều sau 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>

Nguồn: /programming/5451135/embed-svg-in-svg/5451238#5451238


Bằng cách nào đó, điều này dẫn đến thông báo "Không tìm thấy hình ảnh được liên kết" với Inkscape 0.48.4 trên Windows.
mlt

có thể tiền tố xlink: href với "./"? làm việc cho tôi
Berteh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.