如何在PNG图像的边界内绘画

时间:2012-03-02 07:54:00

标签: iphone objective-c png core-graphics

我有一个完全透明的PNG图像。它有一张动物的图片,边上是黑色。

现在,我想在我的手指在ipad屏幕上移动时绘制图像,但是油漆应该只出现在边界区域内而不是在外侧。

我的想法-----

我在想的是将图像的颜色保持在边界线内,与外侧略有不同。然后,获取图像的像素和每个像素的颜色分量。

保持阵列边界外的所有像素,并在手指在iPad屏幕上移动时检查它。

我对核心图形和开放式GL的概念不熟悉,因此无法明智地思考。请帮忙。

1 个答案:

答案 0 :(得分:1)

首先,您应该定义在图像上绘制“内部”的位置。 我建议在第一个触摸的地方运行洪水填充algortihm并定义所需的“内部区域”像素。请注意,您将在原始黑白图像的背景上运行泛光填充,而不是实际绘制像素,只是为了找出目标像素。

例如;我们想把动物的脸部和身体涂成不同的颜色。当用户首先触摸脸部并拖拽时,您可以对黑白图像进行泛光填充以查找脸部像素,并仅绘制脸部区域和触摸区域的交点。然后,当用户拿起她的手指(改变颜色)并在身体上进行润饰并进行另一次泛光填充操作以检测身体的像素等等。

这是一个很长的描述,希望它有意义。

以下是一些可能有用的洪水填充来源:

Floodfill in objective c

https://stackoverflow.com/questions/8121348/flood-fill-algorithm-objective-c-version

How to Implement FloodFill Algorithm in iphone