检测已删除的绘制图像的百分比

时间:2013-01-04 18:00:42

标签: objective-c ios graphics drawing

假设我在iOS(一种颜色)的屏幕上有一个坚固的,不规则形状(但是封闭的)形状。然后,我想通过像在典型的儿童着色应用程序中一样拖动我的手指来“擦除”该形状的部分,使用固定的笔刷大小擦除我触摸屏幕。

我可以通过图像蒙版和触摸检测轻松完成所有这些,但是,作为一项要求,我还需要确定剩余形状的粗略百分比。

例如,我需要知道50%的随机封闭形状何时被“擦除”。

解决此问题的最佳方法是什么?是否有任何现有的iOS兼容库可以处理它?我想我需要跟踪大量多边形并计算所有重叠,但似乎必须有解决这个问题的方法。

编辑:我已经对这个问题进行了研究,但是手动跟踪所有多边形并计算它们的所有位置和区域重叠似乎过于复杂。我只是想知道是否有其他人遇到类似问题并找到了更好的解决方案。

1 个答案:

答案 0 :(得分:2)

您需要先了解图像视图的固定空间。那么你需要知道加载新图像时的空白百分比。像素

double percentageFilledIn = ((double)nonBlankPixelCount/totalpixels);

获得该值后,您需要使用该百分比作为现有百分比的基线

您的新计算将如下所示。

double percentageOfImageLeft = ((double)nonBlankPixelCount/totalpixels/percentageFilledIn);

这种计算很可能是处理器密集型的。我只会谨慎计算。

由于这篇文章不是关于代码的,而是关于登录的更多信息,我将让你确定检测非空白像素的逻辑。

这里是如何找到像素颜色。

How to get Coordinates and PixelColor of TouchPoint in iOS/ObjectiveC

祝你好运。