1つのinkscape SVGドキュメントを別のドキュメントに埋め込む、またはリンクすることは可能ですか?


16

1つの小さな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)。「use」要素は、任意のローカルリソースまたは非ローカルリソースを参照できます。

例:

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

Inkscape、Firefox、Batikで(少なくとも)動作するはずである限り、この機能のサポートはSVGエディター/ビューアーによって異なる場合があります。


Inkscapeが0.91リリースでこの機能のサポートを追加したことは注目に値すると思います。Mint 17(14.04 Ubuntu)でこのバージョンを入手するために、Inkscape ppaを追加しました。
レイフカールセン

@LeifCarlsenどのように正確に?0.91
rac2030

1
Inkscapeの外部でこの機能を使用してファイルを生成し、Inkscapeで表示/レンダリングします。
レイフカールセン

うーん... ok前にこれを試して失敗しましたが、もっと頑張る必要があるかもしれません
-rac2030

Ha nevermind ...通常、間違いを犯すユーザー...参考のために、xlink定義を追加するのを忘れました...名前空間をトップの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


どういうわけか、これは、少なくともWindows上のInkscape 0.48.4で「リンクされたイメージが見つかりません」というメッセージになります。
mlt

xlink:hrefの前に "./"を付けますか?私のために働く。
ベルテ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.