所有绘画程序,无论它们多么简单或复杂,都带有一个填充工具。这基本上用另一种颜色替换了封闭区域的颜色。我知道有不同的 API 可以执行此操作,但我对算法很感兴趣。实现此工具的有效算法是什么?
我能很快想到的几件事是:
- 将图像转换为二进制映射,其中要替换的颜色中的像素为
1
,所有其他颜色为0
。 - 在要更改的点周围找到一个封闭区域,使内部所有像素均为 1,所有相邻像素均为 0。
最佳答案
许多实现都是作为递归征服和划分算法完成的。如果您快速搜索“洪水填充算法”,您会发现大量资源,包括 the topic 上的优秀维基百科页面。 .
关于algorithm - 填充操作在绘画应用程序中如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274213/