Выявить картину, покрытую сплошным цветом

Я пытаюсь создать приложение, которое показывает картинку, изначально покрытую сплошным цветом (черный). Идея состоит в том, что когда я щелкаю где-то на этом черном экране (первоначально) круглую область вокруг черного пикселя, я нажимаю, чтобы сделать его прозрачным, чтобы я мог видеть изображение позади.

Решение, которое я придумал, состоит в том, чтобы использовать холст с изображением, которое я хочу покрыть, установить в качестве фона. Черная обложка будет разделена на пиксели (возможно, хранится в матрице - изображение будет максимально 500х500). Сначала все эти пиксели будут окрашены в черный цвет, а затем, зная, что пиксель, который щелкает пользователь, делает прозрачными (или удаляющими) все пиксели вокруг этого, пока я не очищу круглую область с заданным диаметром.

У меня нет большого опыта работы с холстами, и это решение кажется мне довольно грубым. Я хотел бы спросить второе мнение, или если кто-то может дать мне лучшее решение

Я разрабатываю приложение в Silverlight, если это актуально.

Спасибо!

1 ответ

Решение

Через некоторое время я потратил на чтение элементов управления 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>    

Конечно, эллипсы могут быть размещены программно.

Другие вопросы по тегам