2014-09-27 109 views
0

即時編寫類似於MS Paint的應用程序,我有鉛筆,形狀和線條功能。我將System.Windows.Shapes.Shape對象(如Rectange,Ellipse等)添加到Canvas,並且一切正常。現在我想知道如何創建像「MS Paint」中的「桶」功能(填充相同顏色的區域),是否可以在我的應用中執行此類操作,或者我需要重構它?在畫布中填充相同顏色的區域

+0

你的問題是相似的另一篇文章的SO。這裏的鏈接:http://stackoverflow.com/questions/10038378/how-to-fill-enclosed-area-in-the-bitmap-object-with-a-color – 2014-09-27 20:24:13

+0

@André它幾乎涉及到gdi位圖,雖然我們可以在那裏提取算法。然而,OP似乎想知道WPF中是否有更簡單的方法。 – 2014-09-27 20:26:13

回答

0

我認爲有不同的方式來實現這取決於你的技能和時間。

如果我想做到這一點,我將連接兩個相同顏色的像素和

http://en.wikipedia.org/wiki/Connected-component_labeling這種方法在同一個地方。然後給它們着色。

或本: http://en.wikipedia.org/wiki/Flood_fill

+0

您是否認爲將我的畫布轉換爲位圖,找到要填充的區域點,然後從這些點創建多邊形並將其添加到畫布會是一個好主意? – Poxy 2014-09-27 20:34:00