2015-04-04 21 views
10

Chcę utworzyć okrąg, który zawiera obraz, już próbowałem używać pattern lub filter, ale żaden z nich nie daje mi oczekiwanego rezultatu. Poniżej znajduje się kod:Obraz SVG wewnątrz okręgu

<svg id="graph" width="100%" height="400px"> 
 

 
    <!-- filter --> 
 
    <filter id = "born1" x = "0%" y = "0%" width = "100%" height = "100%"> 
 
     <feImage xlink:href = "https://cdn3.iconfinder.com/data/icons/people-professions/512/Baby-512.png"/> 
 
    </filter> 
 
    <circle id = "born" class = "medium" cx = "5%" cy = "20%" r = "5%" fill = "white" stroke = "lightblue" stroke-width = "0.5%" filter = "url(#born1)"/> 
 
    
 
    <!-- pattern --> 
 
    <defs> 
 
    <pattern id="image" x="0" y="0" height="100%" width="100%"> 
 
     <image x="0" y="0" xlink:href="https://cdn3.iconfinder.com/data/icons/people-professions/512/Baby-512.png"></image> 
 
    </pattern> 
 
    </defs> 
 
    <circle id = "sd" class = "medium" cx = "5%" cy = "40%" r = "5%" fill = "white" stroke = "lightblue" stroke-width = "0.5%" fill="url(#image)"/> 
 
</svg>

Moim celem jest zachowanie krąg i dać obraz tła w środku, coś jak CSS attr background-image.

Odpowiedz

16

wzór będzie działać. Musisz tylko podać rozmiar <image>. W przeciwieństwie do HTML, obrazy SVG mają domyślnie szerokość i wysokość zero.

Ponadto, jeśli obrazek ma być skalowany za pomocą koła, należy podać wzór dla wzoru viewBox.

<svg id="graph" width="100%" height="400px"> 
 

 
    <!-- pattern --> 
 
    <defs> 
 
    <pattern id="image" x="0%" y="0%" height="100%" width="100%" 
 
      viewBox="0 0 512 512"> 
 
     <image x="0%" y="0%" width="512" height="512" xlink:href="https://cdn3.iconfinder.com/data/icons/people-professions/512/Baby-512.png"></image> 
 
    </pattern> 
 
    </defs> 
 
    
 
    <circle id="sd" class="medium" cx="5%" cy="40%" r="5%" fill="url(#image)" stroke="lightblue" stroke-width="0.5%" /> 
 
</svg>

2

Spróbuj tego,

użycie patternUnits="userSpaceOnUse" i ustawić height="100%" width="100%" z <image>

<defs> 
    <pattern id="image" x="0" patternUnits="userSpaceOnUse" y="0" height="100%" width="100%"> 
     <image x="0" y="0" width="500" height="500" xlink:href="http://www.viralnovelty.net/wp-content/uploads/2014/07/121.jpg"></image> 
    </pattern> 
    </defs> 

Demo

+0

Zmiana URL obrazu do kopalni, sprawiają, że nie działa .. jakiś pomysł? –