我试图弄清楚 CGPoint 是否位于图像的形状内。该图像是一个简单的黑色形状,例如下面的两个。我想创建一个方法来确定 CGPoint 是否位于该形状的黑色区域内。
我认为这需要两件事: 1) 将图像变成可以用代码读取的东西(不确定这将使用哪种图像处理或如何处理)
2) 使用它作为引用来确定 CGPoint 是否位于其中。
感谢任何帮助或想法。我以前从未做过图像处理类型的编码。谢谢!
最佳答案
看看 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
类别,您可以简单地确定红色和蓝色组件。如果它们很低(像素是暗的),则测试点是内部形状。
CGFloat redComp = [pixelColor red];
CGFloat blueComp = [pixelColor blue];
BOOL isInsideShape = ((redComp < 0.5) && (blueComp < 0.5));
关于iphone - 确定 CGPoint 是否在图像区域内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9554037/