Bir inkscape SVG belgesini diğerinin içine gömmek veya bağlamak mümkün müdür?


16

Bir küçük SVG dosyası (Inkscape ile oluşturulmuş) almak ve gömmek veya başka (daha büyük) bir dosyaya bağlamak istiyorum. Bir tarayıcı tarafından görüntülendiğinde, küçük olanın daha büyük olanın bazı yer tutucularının içinde görünmesini umuyorum.

Mümkün mü?

Yanıtlar:


8

Tercih <use>etmek <image>daha sonra sabit bir çözünürlükte oluşturulur ve düzenli vektör nesneleri Geçerli belgede olduğu gibi ölçekli yok olarak. http://www.w3.org/TR/SVG11/struct.html#ImageElement

Ancak öğe <use>, tüm SVG dosyalarına başvuramaz; xlink:hrefözniteliği, bir SVG belgesindeki bir öğeye / parçaya bir referanstır ( http://www.w3.org/TR/SVG11/struct.html#UseElement ). 'Use' öğesi herhangi bir yerel veya yerel olmayan kaynağa başvurabilir.

misal:

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

Bu özelliğin desteği, Inkscape, Firefox ve Batik'te (en azından) çalışması gerektiğini bildiğim kadarıyla farklı SVG editörleri / izleyicileri için değişebilir.


Inkscape'in 0.91 sürümünde bu özellik için destek eklediğini belirtmek gerekir. Bu sürümü Mint 17'de (14.04 Ubuntu) almak için Inkscape ppa'yı ekledim.
Leif Carlsen

@LeifCarlsen Tam olarak nasıl? 0.91
rac2030

1
Inkscape dışında bu özelliğe sahip dosyalar üretiyorum ve Inkscape ile görüntüleyebiliyorum.
Leif Carlsen

Hmmm ... tamam Daha önce denedim ve başarısız oldum ama belki daha fazla denemem gerekiyor
rac2030

Ha nevermind ... genellikle hata yapan kullanıcı ... referans için sadece xlink tanımını eklemeyi unuttum ... Üst svg etiketine ad alanını ekledim ve aniden çalışmaya başladı ;-)
rac2030

3

imageÖğeyi kullanın ve SVG dosyanıza bakın. Eğlenmek için aşağıdakileri kaydedin 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>

Kaynak: /programming/5451135/embed-svg-in-svg/5451238#5451238


Her nasılsa bu, en azından Windows'ta Inkscape 0.48.4 ile "Bağlantılı resim bulunamadı" iletisiyle sonuçlanır.
mlt

belki xlink: href'in önüne "./" eklenebilir? benim için çalışıyor.
Berteh
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.