iphone - 确定 CGPoint 是否在图像区域内

标签 iphone ios xcode ipad

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

我认为这需要两件事: 1) 将图像变成可以用代码读取的东西(不确定这将使用哪种图像处理或如何处理)

2) 使用它作为引用来确定 CGPoint 是否位于其中。

感谢任何帮助或想法。我以前从未做过图像处理类型的编码。谢谢!

enter image description here

最佳答案

看看 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/

相关文章:

iphone - 是否可以在 UIScrollView 中平铺图像而无需手动创建所有平铺?

ios - 在 UINavigationController 堆栈 (IOS7) 的 UIWebview 中播放嵌入式视频的问题

ios - 更改 View 时隐藏键盘

ios - FBSDKLoginCore 架构 armv7 的 undefined symbol

swift - 在 Swift 中调整从 API 下载的 pdf 文档

ios - 如何创建 .mbtiles 文件?

iphone - 在 iPhone 上切换基于单一 View 的应用程序 View

ios - 替代 Apple Lion 服务器配置文件管理器

ios - CGContext横竖线宽的区别

ios - 仅在 iPhone X (iOS 12) 上以横屏模式使用 UIImagePickerController 时应用程序崩溃