确定CGPoint是否在图像区域内

我试图弄清CGPoint是否在图像的形状之内。 图像是一个简单的黑色形状,如下面的两个附件。 我想创build一个方法来确定CGPoint是否位于该形状的黑色区域内。

我认为这需要两件事:1)将图像转换成可以用代码读取的东西(不知道这将使用什么样的image processing或如何)

2)以此作为参考来确定CGPoint是否在其中。

任何帮助或想法表示赞赏。 我从来没有做过image processingtypes的编码。 谢谢!

在这里输入图像说明

看看Ole Begemann的OBShapedButton 。 在那里你会发现一个包含ColorAtPixel方法的UIImage类别。 猜猜这就是你要找的。

然后你可以得到某个像素的UIColor

 UIImage *image = [UIImage imageWithCGImage:yourCGImage]; CGPoint point = CGPointMake(pointx,pointy); UIColor *pixelColor = [image colorAtPixel:point]; 

为了简化获取RGB值,你也可以看看uicolor-utilities 。 使用UIColor-Expanded类别,您可以简单地确定让我们说红色和蓝色的组件。 如果它们较低(像素较暗),则testing点位于内部形状。

 CGFloat redComp = [pixelColor red]; CGFloat blueComp = [pixelColor blue]; BOOL isInsideShape = ((redComp < 0.5) && (blueComp < 0.5));