确定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));