我想建立一個應用程序在native android中着色圖像,它具有圖像,我想知道如何檢測圖像邊框,以及如何檢測不同的形狀並在其中填充顏色? 示例應用程序的鏈接:https://play.google.com/store/apps/details?id=kidgames.coloring.pages&hl=en如何識別不同的形狀並在android中填充它們的顏色?
1
A
回答
2
你可以用顏色填充算法。
見鏈接:
Flood Fill Algorithm
private void FloodFill(Bitmap bmp, Point pt, int targetColor, int replacementColor){
Queue<Point> q = new LinkedList<Point>();
q.add(pt);
while (q.size() > 0) {
Point n = q.poll();
if (bmp.getPixel(n.x, n.y) != targetColor)
continue;
Point w = n, e = new Point(n.x + 1, n.y);
while ((w.x > 0) && (bmp.getPixel(w.x, w.y) == targetColor)) {
bmp.setPixel(w.x, w.y, replacementColor);
if ((w.y > 0) && (bmp.getPixel(w.x, w.y - 1) == targetColor))
q.add(new Point(w.x, w.y - 1));
if ((w.y < bmp.getHeight() - 1)
&& (bmp.getPixel(w.x, w.y + 1) == targetColor))
q.add(new Point(w.x, w.y + 1));
w.x--;
}
while ((e.x < bmp.getWidth() - 1)
&& (bmp.getPixel(e.x, e.y) == targetColor)) {
bmp.setPixel(e.x, e.y, replacementColor);
if ((e.y > 0) && (bmp.getPixel(e.x, e.y - 1) == targetColor))
q.add(new Point(e.x, e.y - 1));
if ((e.y < bmp.getHeight() - 1)
&& (bmp.getPixel(e.x, e.y + 1) == targetColor))
q.add(new Point(e.x, e.y + 1));
e.x++;
}
}}
+0
謝謝Chetan先生,但是你能否澄清一下,它是否會填滿一個點擊的形狀,或者它將不得不通過觸摸屏來填充它? –
+0
它將填滿邊界下的全部區域。點擊任何形狀後。 –
+0
謝謝..將盡力實施 –
相關問題
- 1. 填充顏色不同的HTML形狀
- 2. 如何用顏色填充形狀
- 3. Opengl不規則形狀顏色填充
- 4. 填充顏色的形狀像Paper.io
- 5. 如何在由筆繪製的形狀中填充顏色
- 6. 如何在PaintCode中填充形狀顏色的一部分?
- 7. 如何填充不同顏色的div?
- 8. Android Opengl 2形狀不同的顏色
- 9. 如何在給定的條件下用顏色填充形狀
- 10. 填充顏色和線條顏色的填充和空心形狀
- 11. three.js所 - 形狀填充顏色
- 12. Java創建顏色數組並在形狀中使用它們
- 13. 用Corona SDK中的顏色填充多邊形形狀
- 14. Java:如何用顏色填充ArrayList的形狀?
- 15. 如何使用顏色填充自由繪製的形狀
- 16. Matlab:繪製圓形並用不同的半徑填充不同的顏色
- 17. 如何在多個多邊形Google地圖V3中填充不同的顏色?
- 18. Matlab填充白色形狀
- 19. 具有不同填充顏色的geom_area
- 20. 的Flex/ActionScript中改變形狀填充顏色
- 21. 更改ggplot中點的顏色填充和形狀
- 22. 爲圖像添加填充以使它們形狀相同
- 23. 將矩形的填充顏色填充爲前景色
- 24. 如何在填充圖中獲得深色填充顏色?
- 25. 如何在gnuplot中填充矩形函數下面的顏色?
- 26. 多邊形不顯示填充顏色
- 27. 的圖像填充形狀與特定顏色的OpenCV
- 28. 如何計數。 MS Excell中的單元取決於它們的填充顏色
- 29. Android佈局中的填充顏色
- 30. 如何繪製矩形並根據電池級別填充顏色
退房這個答案https://stackoverflow.com/a/9748429/2556660。 – RameshJaga