我正在尝试构建一个应用程序,显示最初用纯色(黑色)覆盖的图片。我的想法是,当我点击黑色屏幕上的某个地方(最初)时,我点击的黑色像素周围的圆形区域变得透明,这样我就能看到背后的图像。
我想出的解决方案是使用画布将我想要覆盖的图片设置为背景。黑色封面将以像素分割(也许存储在矩阵中 - 图像最大为500x500)。所有这些像素最初都是黑色的,然后知道用户点击的像素使透明(或删除)周围的所有像素,直到我清除预设直径的圆形区域。
我对画布的经验不多,这个解决方案对我来说似乎很粗糙。我想问一个第二意见,或者是否有人可以给我一个更好的解决方案
我正在Silverlight中开发应用程序,如果这是相关的。
谢谢!
答案 0 :(得分: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>
当然,省略号可以编程。