我想建立一个应用程序在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