2013-05-16 30 views
0

我正在開發一個繪畫應用程序,其中我將有不同的圖像不規則的對象,如動物,花卉等..我希望當用戶開始使用顏色繪畫時,顏色不應該出現在邊界的那邊object..help我在檢測不規則的身體對象的邊界...如何檢測不規則形狀的邊界?

+0

https://github.com/chinatndave/UIImageScanlineFloodfill – CRDave

回答

2

你在找什麼是一個2d洪水填充算法。一旦你理解了算法的遞歸性質,這很簡單。在這裏發佈代碼將佔用太多的空間。有一個關於這個在這裏一個偉大的文章:

QuickFill Article

我只是重讀你的問題。以上內容會有所幫助,但您可能只想使用遮罩層和可編輯圖層。製作圖層將在「可編輯」圖層上繪製,具有用戶可以繪製的完整透明度。

+0

感謝您的回覆,但我不希望它被一次填滿,而是當用戶將他/她的手指移動到圖像上時。手指的移動......預先感謝 – user2389921

+1

在這種情況下,是的,使用兩個圖層,一個用戶可以繪製,另一個繪製在此圖層上。這將模擬保持用戶「在線」。 –

+0

如果像素可以容納更多信息,則每個像素可以有一個「邊界」標記。在拖動事件中繪製像素(如果它不是邊界並且至少有一個鄰居已被繪製)(每個筆劃的第一個像素在觸摸事件中繪製)。 – Renan

0

您需要低通濾波器(檢測,但不能更改)或解決方案。

+0

感謝您的回覆,但我不希望它一次全部填滿,而是因爲用戶將他/她的手指移動到圖像上。手指的移動......預先感謝 – user2389921

+0

而這就是低過濾器進來的地方。在處理用戶拖動的情況下,如果滿足這些條件,則繪製一個像素:它之前未被繪製,至少有一個鄰居被繪,畫的鄰居不會突然改變顏色信息。或者,如果所有的邊界都是相同的顏色,那麼您只需在那裏停止着色。 – Renan