SVG image inside circle

后端 未结 3 1611
星月不相逢
星月不相逢 2020-11-30 11:30

I want to create a circle which contains an image, I already tried using pattern or filter but none of them give me the expected result. Below is t

相关标签:
3条回答
  • 2020-11-30 12:02

    Try this,

    use patternUnits="userSpaceOnUse" and to set height="100%" width="100%" of <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 讨论(0)
  • 2020-11-30 12:03

    A pattern will work. You just have to give the <image> a size. Unlike HTML, SVG images default to width and height of zero.

    Also, if you want the image to scale with the circle, then you should specify a viewBox for the pattern.

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

    0 讨论(0)
  • 2020-11-30 12:16

    You don't actually need SVG for this. You can accomplish your goal with image tag itself.

    .avatar {
        vertical-align: middle;
        width: 20px;
        height: 20px;
        border-radius: 50%;
    }
    
    <img src="https://connectoricons-prod.azureedge.net/kusto/icon_1.0.1027.1210.png" alt="Avatar" class="avatar">
    

    Refer here for live demo

    0 讨论(0)
提交回复
热议问题