圈内的SVG图像

时间:2015-04-04 04:50:12

标签: html svg

我想创建一个包含图片的圆圈,我已经尝试使用patternfilter,但没有一个给我预期的结果。以下是代码:

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

我的目标是保留圆圈并在其中提供背景图像,例如CSS attr background-image

3 个答案:

答案 0 :(得分:22)

模式可行。你只需要给<image>一个大小。与HTML不同,SVG图像的默认宽度和高度为零。

此外,如果您希望图像随圆圈缩放,则应为图案指定viewBox

&#13;
&#13;
<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>
&#13;
&#13;
&#13;

答案 1 :(得分:2)

试试这个,

使用patternUnits="userSpaceOnUse"并设置height="100%" width="100%"

<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

答案 2 :(得分:0)

您实际上不需要SVG。您可以使用图像标签本身来实现您的目标。

NSManagedObject

Refer here for live demo