1

これは可能ですか?私は svg を持っており、その svg の一部を透明な四角形でオーバーレイしたいと考えています。SVG の一部を覆って色を変えたり、光らせたりすることは可能ですか?

4

1 に答える 1

2

はい、そうです。feComposite "in" を使用して重複領域を抽出し、それに効果を適用してから、その結果を元のグラフィックの上に再合成できます。不透明度が可変の場合はさらに複雑になりますが、概念は同じです。あなたの SVG にフィドルを投稿してください。あなたのためにフィルターを書いてみます。

アップデート:

方法は次のとおりです。

   <filter id="greenify">

        <feFlood flood-color="#ff0770" flood-opacity="1" x="50" y="30" height="40" width="260" result="A"/> 
        <feComposite operator="in" in2="SourceGraphic" in="A" result="B"/>
        <feColorMatrix type="hueRotate" in="B" result="C" 
            values ="90" /> 
        <feComposite operator="over" in2="SourceGraphic" in="C"/>

   </filter>

最初の feFlood は、色の長方形を作成します。次に、feComposite が重複領域を抽出します。feColorMatrix はその色を変更し (結果の元の四角形ではないことがわかります)、feComposite は元の SourceGraphic の上に新しい緑色の領域をオーバーレイします。

http://jsfiddle.net/jsfmullany/Jys7a/1/

于 2013-01-18T17:39:13.453 に答える