2012-06-20 8 views
5

VMLでSVGのclip-pathに対応するクリッピングマスクを作成しようとしていますか?それは可能ですか?vmlクリップマスク

<vml:group style="WIDTH: 1px; HEIGHT: 1px" class=vml-element coordsize = "1,1"> 
    <vml:shape style="WIDTH: 1px; HEIGHT: 1px" id=vectorObject2 class=vml-element _fill-color="red" _fill-opacity="1" _stroke-color="black" _stroke-opacity="1" _stroke-width="1" coordsize = "1,1" filled = "t" fillcolor = "red" stroked = "t" strokecolor = "black" strokeweight = ".75pt" path = "m0,0 l100,0,0,100 xe"> 
     <vml:fill class=vml-element opacity = "1"></vml:fill> 
     <vml:stroke class=vml-element opacity = "1"></vml:stroke> 
    </vml:shape> 
</vml:group> 

、次いでvmlframeを使用してマスキング:多数が、かなり限られた、私は形状を描画しようとしている例に基づい

形状(三角形)の作品の

<vml:vmlframe class=vml-element clip = "t" size = "15pt,37.5pt" src = "#vectorObject2"> </vml:vmlframe> 

デッサン期待どおりに私はvmlframeを使用して私はそれをマスクする方法を見つけることができません。それがマスキングを達成する正しい方法ですか?

大多数のVMLコードがサードパーティのライブラリから生成されたため、奇妙なカスタム属性のすべてを無視してください。

ありがとうございます!

+0

[このW3Cドキュメント](http://www.w3.org/Submission/1998/08/vmlreq)に従って、ラスタイメージをクリップすることが理論上可能であるはずです。*「ステンシルとマスキングは、塗りつぶし操作をビットマップとして指定することができます(塗りつぶしパスにクリップされる可能性があります)。シェイプパスにクリップされる塗りつぶしとしてその図面を指定することで、任意の図面のクリッピングに対応するようにVMLを拡張することができます。 *どこにも例がないように思えるのは残念です。 – user568458

答えて

2

Dojo GFX libraryまたはjsgraphicsのようにクリップパスをエミュレートするには、CSS clip propertyを使用します。

+0

これは実際にはポイントです。 'Dojo'は長方形のクリッピングマスクを実装しましたが、カスタムパス(パス/カーブのようなもの)が必要です –

+0

[jsgraphics](http://www.walterzorn.de/ja/jsgraphics/jsgraphics_e.htm)ライブラリでは、ブラウザ間の塗りつぶしと楕円と線のストロークがそれぞれ含まれています。これを絶対位置と組み合わせて、クリッピングマスクをシミュレートするために背景色にマッチさせることが可能です。 –

+0

さて、それは私が今までに得られるほど近いと思われます。賞金はあなたに行く@ポール!ありがとう:) –

関連する問題