我正在试图弄清楚CGPoint是否位于图像的形状内。图像是简单的黑色形状,例如下面附着的两个。我想创建一个方法来确定CGPoint是否位于该形状的黑色区域内。
我认为这需要两件事: 1)将图像转换为可以用代码读取的内容(不确定使用哪种图像处理或如何使用)
2)使用它作为参考来确定CGPoint是否在其中。
任何帮助或想法表示赞赏。我之前从未做过图像处理类型的编码。谢谢!
答案 0 :(得分:11)
看看Ole Begemann的OBShapedButton。在那里,您会找到包含UIImage
方法的ColorAtPixel
类别。猜猜那就是你要找的东西。
然后,您可以使用以下内容获取某个像素的UIColor
UIImage *image = [UIImage imageWithCGImage:yourCGImage];
CGPoint point = CGPointMake(pointx,pointy);
UIColor *pixelColor = [image colorAtPixel:point];
为了简化RGB值,您还可以查看uicolor-utilities。使用UIColor-Expanded
类别,您可以简单地确定让我们说红色和蓝色组件。如果它们很低(像素是暗的),则测试点是内部形状。
CGFloat redComp = [pixelColor red];
CGFloat blueComp = [pixelColor blue];
BOOL isInsideShape = ((redComp < 0.5) && (blueComp < 0.5));