确定CGPoint是否在图像区域内

use*_*946 9 iphone xcode ipad ios

我想弄清楚CGPoint是否位于图像的形状内.图像是简单的黑色形状,例如下面附着的两个.我想创建一个方法来确定CGPoint是否位于该形状的黑色区域内.

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

2)使用它作为参考来确定CGPoint是否位于其中.

任何帮助或想法赞赏.我之前从未做过图像处理类型的编码.谢谢!

在此输入图像描述

Rok*_*arc 11

看看Ole Begemann的OBShapedButton.在那里你会找到一个UIImage包含ColorAtPixel方法的类别.猜猜你正在寻找什么.

然后UIColor,您可以获得某些像素:

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

为了简化RGB值,您还可以查看uicolor-utilities.使用UIColor-Expanded类别,您可以简单地确定让我们说红色和蓝色组件.如果它们很低(像素是暗的),则测试点是内部形状.

CGFloat redComp = [pixelColor red];
CGFloat blueComp = [pixelColor blue];

BOOL isInsideShape = ((redComp < 0.5) && (blueComp < 0.5));
Run Code Online (Sandbox Code Playgroud)