0

最初は単色(黒)で覆われた画像を表示するアプリケーションを構築しようとしています。アイデアは、その黒い画面のどこかをクリックすると(最初は)、黒いピクセルの周りの円形の領域をクリックして透明にし、背後の画像を見ることができるようにすることです。

私が思いついた解決策は、カバーしたい写真を背景に設定したキャンバスを使用することです。黒いカバーはピクセル単位で分割されます (おそらくマトリックスに格納されます - 画像は最大 500x500 になります)。これらのピクセルはすべて最初は黒く着色され、次に、ユーザーがクリックしたピクセルがその周囲のすべてのピクセルを透明にする (または削除する) ことを知って、事前設定された直径の円形領域をクリアします。

私はキャンバスの経験があまりないので、この解決策はかなり大雑把に思えます。セカンドオピニオンを聞きたかった、または誰かが私にもっと良い解決策を教えてくれるかどうか

関連する場合は、Silverlight でアプリを開発しています。

ありがとう!

4

1 に答える 1

0

Silverlight コントロールについて読んだ後、Image.Clip を使用することになりました。私のような人がそれを必要とする場合の例を次に示します。

  <Image Source="Images/img.jpg" Width="150" Height="150" Canvas.Left="30" Canvas.Top="19">                                                
            <Image.Clip>
                <GeometryGroup FillRule="Nonzero">
                    <EllipseGeometry RadiusX="20" RadiusY="20" Center="100,100"></EllipseGeometry>
                    <EllipseGeometry RadiusX="20" RadiusY="20" Center="80,100"></EllipseGeometry>
                    <EllipseGeometry RadiusX="20" RadiusY="20" Center="80,83"></EllipseGeometry>                        
                    <EllipseGeometry RadiusX="20" RadiusY="20" Center="60,60"></EllipseGeometry>
                </GeometryGroup>
            </Image.Clip>
        </Image>    

もちろん、楕円はプログラムで配置できます。

于 2013-01-16T20:41:11.460 に答える