iOS中的油漆桶

时间:2015-10-14 21:46:05

标签: ios iphone ios7

我遇到了问题,需要一些帮助或指导以寻找可能的解决方案。

基本上在我的应用程序中会有一个包含多个区域的地图。 用户可以选择任何这些区域,此时此区域将填充颜色。

想象一下像这样的地图,所以我需要能够改变一个国家的颜色。    enter image description here

类似于绘画书中的内容(https://itunes.apple.com/pt/app/colorfly-best-coloring-book/id1020187921?mt=8)或Photoshop中的油漆桶命令。

知道如何在iOS上获得这样的东西吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

您正在寻找的油漆桶技术是一组通常称为" flood fill"的图形算法。根据具体情况和性能需求,有不同的实施方法。 (该维基百科链接还有更多内容。)

我没有使用它的经验,但是这里有一个来自GitHub的库,声称在给定UIImage对象的情况下为iOS实现这个:https://github.com/Chintan-Dave/UIImageScanlineFloodfill

Re:关于在没有用户触摸的情况下执行此操作的问题:是的,您希望将国家/地区的地图保存到(x,y)点,以便您可以在需要时重新填充国家/地区。也就是说,如果没有对原始来源进行更仔细的规范化,那么县界的错综复杂可能会使算法填充不准确。如果您的整个地图仅包含一小组可能的状态,则还有其他方法可以实现此目标,例如保留一组完整的可能图像(在Photoshop中创建)并将其切换出来,或者保留一组每个国家& #34;覆盖"您根据需要交换的图像。 (但是如果洪水填充在该源图像上是准确的,并且符合您的需求,那么很棒。)