É possível incorporar ou vincular um documento SVG do inkscape dentro de outro?

13

Gostaria de pegar um pequeno arquivo SVG (criado com o Inkscape) e incorporar ou vinculá-lo a outro (maior). Quando exibido por um navegador, espero ver o menor aparecer dentro de algum espaço reservado do maior.

É possível?

    
por Keith 09.03.2011 / 02:22

2 respostas

6

Prefira <use> a <image> , pois o último é renderizado em uma resolução fixa e não é dimensionado como os objetos vetoriais regulares no documento atual. link

Mas o elemento <use> não pode referenciar arquivos SVG inteiros, seu atributo xlink:href é uma referência a um elemento / fragmento dentro de um documento SVG ( link ). O elemento 'use' pode referenciar qualquer recurso local ou não local.

exemplo:

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

O suporte a esse recurso pode variar para diferentes editores / visualizadores SVG, até onde eu saiba que deve funcionar (pelo menos) no Inkscape, Firefox e Batik.

    
por 22.05.2014 / 13:18
2

Use o elemento image e faça referência ao seu arquivo SVG. Por diversão, salve o seguinte como 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>

Fonte: link

    
por 26.10.2011 / 09:52

Tags