2017-06-21 6 views
1

これは私のコードであるSVGサークルシェイプに異なる背景画像(.png)を追加し、ストロークを設定するにはどうすればいいですか?

私はalreay Add a background image (.png) to a SVG circle shape

を参照してくださいが、私の場合、私は別の画像状にストロークとストローク幅を追加する必要があります。

<svg width="700" height="660"> 
<defs> 
    <pattern id="image" x="0" y="0" patternUnits="userSpaceOnUse" height="1" width="1"> 
     <image x="0" y="0" xlink:href="url.png"></image> 
    </pattern> 
    <pattern id="image2" x="0" y="0" patternUnits="userSpaceOnUse" height="1" width="1"> 
     <image x="0" y="0" xlink:href="url2.png"></image> 
    </pattern> 
</defs> 
<circle cx = "20%" cy = "20%" r = "20" fill = "url(#image)" stroke-width ="2px" stroke="red"/> 
<circle cx = "40%" cy = "20%" r = "20" fill = "url(#image2)" stroke-width ="2px" stroke="red"/> 
</svg> 

、これは動作しませんでした第2の円は、その塗りつぶしのための画像を持たない。

および

<svg width="700" height="660"> 
    <filter id="this_image" x="0%" y="0%" width="100%" height="100%"> 
     <feImage xlink:href="test_image.png"/> 
    </filter> 
    <circle filter="url(#this_image)" cx="180" cy="120" r="80" stroke-width ="2px" stroke="red"/> 
</svg> 

ストロークとストローク幅が無駄です

どうすればいいですか?代わりにUserSpaceOnUseでpatternUnits属性値にObjectBoundingBoxで使用

+0

あなたは何をしようとしていますか? 2番目の円は最初の円と全く同じ場所にあるので、最初の円を隠すことになります。私はあなたが「第二のサークルは何も埋めることができない」ということをあなたが何を意味するのか分かりません。 2番目の円にその塗りつぶしのイメージがないことを意味しますか? –

+0

はい、2番目の円はその塗りつぶしの画像がありません。さらに異なる位置、最初のパターン作業 – CloudChing

+0

画像要素には高さと幅がありません。それはSVG 2の新機能だから、現時点ではChromeだけがAFAIKをサポートしています。 –

答えて

1

異なるアウトラインを追加します。私は別の画像(円形PS)を示したいと思います。また、xlink名前空間を宣言する必要があります。したがって、以下を使用するようにしてください: - 第二に、あなたがコードスニペットを実行した場合

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="700" height="660"> 
 
    <defs> 
 
    <pattern id="image" x="0" y="0" patternUnits="objectBoundingBox" height="1" width="1"> 
 
     <image x="0" y="0" xlink:href="https://www.gravatar.com/avatar/31497e3c546c438c4eea4b68d6f9f027?s=32&d=identicon&r=PG&f=1"></image> 
 
    </pattern> 
 
    <pattern id="image2" x="0" y="0" patternUnits="objectBoundingBox" height="1" width="1"> 
 
     <image x="0" y="0" xlink:href="https://lh5.googleusercontent.com/-x_BhuHcC8Ww/AAAAAAAAAAI/AAAAAAAAABg/hiPWIjRXbhI/photo.jpg?sz=64"></image> 
 
    </pattern> 
 
    </defs> 
 
    <circle cx = "20%" cy = "20%" r = "20" fill = "url(#image)" stroke-width ="2px" stroke="red"/> 
 
    <circle cx = "40%" cy = "20%" r = "20" fill = "url(#image2)" stroke-width ="2px" stroke="red"/> 
 
</svg>

、あなたはあなたのプロフィールアイコンが最初の円で表示され、私のしていることを、表示されます。

+0

ありがとう!非常に役立ちます !私の最も誠実な敬意と神はあなたを祝福 – CloudChing

関連する問題