2017-12-07 14 views
0

私は現在、以下のようなコメントアイコンをsvgに作成しようとしていますが、テキストの周りのスペースは吹き出しのカットホールとして(ボトムのアイコンのようにはなりません)。SVGにテキストを含むマスクを作成します

私は反応で動的にsvgを生成するので、<text>要素が必要です。

可能かどうか誰かが知っていますか?

おかげ

Commments SVG icons

+0

? –

+0

バブルの場合は「」、カウンタの場合は「」というsvgがあります。私は複数のCSSのテキストシャドーで境界線を作成しました。 テキストでマスクを作ろうとしましたが、border-widthを考慮していませんでした。 – lpillonel

+0

このマークアップを質問に追加してください。 –

答えて

3

このフィルタは、「グリーン・スクリーン」技術を使用しています:あなたは別の原色を区別したいコンテンツの部分に色を - そして生成するために、カラーマトリックスを使用します各特定の色のコンテンツだけを含むノードを分離する。コンテンツを処理した後、最後にもう1つのカラーマトリックスを使用して、コンテンツを最終的な(単一の)目的の色に再描画します。あなたがこれまで持っている何

<svg width='400px' height='400px' viewBox='0 0 258 229' > 
 
     <defs> 
 
      <filter id="cut-out"> 
 
      <feColorMatrix type="matrix" values="0 0 0 0 0 
 
               0 0 0 0 0 
 
               0 0 1 0 0 
 
               -1 0 0 1 0" 
 
          result="just-blue"/> 
 
      <feColorMatrix type="matrix" values="1 0 0 0 0 
 
               0 0 0 0 0 
 
               0 0 0 0 0 
 
               0 0 -1 1 0" 
 
     in="SourceGraphic" result="just-red"/> 
 
      
 
     <feMorphology in="just-blue" operator="dilate" radius="3"/> 
 
     
 
      <feComposite operator="out" in="just-red"/> 
 
      <feComposite operator="over" in2="just-blue"/> 
 
      
 
     <feColorMatrix type="matrix" values="0 0 0 0 .33 
 
               0 0 0 0 .33 
 
               0 0 0 0 .33 
 
               0 0 0 1 0"/> 
 
      
 
     </filter> 
 
     </defs> 
 
     
 
     <g filter="url(#cut-out"> 
 
     <circle r="50" fill="red" cx="100" cy="100"/> 
 
     <text x="110" y="140" stroke="none" fill="blue" font-size="70">3</text> 
 
     </g> 
 
      
 
    </svg>

+0

素晴らしい技術非常に興味深い。あなたは自分自身を思いついたか、そのような解決策を持っていましたか?私は記事にリンクを付けるように頼むことができます、もしあれば、私は非常に感謝します。参考文献は、行列の理論ではなく、この特定の技術に関連しています。 –

+1

自分で開発しました。 https://codepen.io/mullany/このグリーンスクリーン技術を使用して他のいくつかの質問に答えました。他のsvg-filtersタグの付いた質問を見ることができます。 –

+0

私はすでに見ています。多くの面白い作品。ありがとうございました! –

関連する問題