我设法使用类似的方法掩盖视图:How to mask UIViews in iOS 但现在我需要检测在这个蒙面视图中的触摸。 Gesture recognisers
和按钮会在bounds
区域检测到触摸,基本上忽略掩码。所以我认为如果我可以从我的面具图像中获得CGPath
,那么处理触摸会很容易。有关如何从掩模图像获取CGPath
的建议?我可以通过alpha通道从图像获取CGPath吗?
3
A
回答
2
您可以设置UIGestureRecognizer
的代表,并覆盖- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
1。获得在识别的观点
- (CGPoint)locationInView:(UIView *)view
2接触的位置。找出该位置图像的Alpha通道。为此,使用此代码(为了提高效率,您可以提前为整个图像重新计算透明值,并将它们存储到缓冲区中,这样您就不必每次都复制alpha缓冲区了。并没有为它的单个像素。如果你想看看如何做一次整体形象,看看这个post。
unsigned char pixelData[1] = {0};
CGContextRef context = CGBitmapContextCreate(pixelData, 1, 1, 8, 1, NULL, kCGImageAlphaOnly);
UIGraphicsPushContext(context);
[im drawAtPoint:CGPointMake(-point.x, -point.y)];
UIGraphicsPopContext();
CGContextRelease(context);
CGFloat alphaChannel = pixel[0]/255.0;
BOOL transparent = alphaChannel < 0.01;
- 基于该值,则返回YES或者是否
相关问题
- 1. 使用Alpha通道获取CGPath图像
- 2. 我可以通过NSURLResponse获取URL吗?
- 3. 图片地图通过alpha通道
- 4. 从UIImage矩形获取alpha通道
- 5. 我可以告诉direct3d使用alpha通道渲染吗?
- 6. 如何使用IImgCtx获取带有Alpha通道的图像?
- 7. 我可以在3通道图像中平滑1个通道吗?
- 8. 我可以通过蓝牙从设备获取VendorID,ProductID吗?
- 9. 可以通过标记获取UICollectionViewCell吗?
- 10. 如何使用Pillow从图像中提取Alpha通道
- 11. 我可以通过BufferedImage读取InputStream吗?
- 12. 我可以使用libjpeg来读取带有alpha通道的JPEG吗?
- 13. 带“alpha”通道的“直”版图像
- 14. Win32剪贴板和alpha通道图像
- 15. 添加Alpha通道的图像与PerlMagick
- 16. ffmpeg - 我可以将音频通道作为图像吗?
- 17. 我可以通过坐标像(10,10,320,312)裁剪图像吗?
- 18. StretchBlt和过滤alpha通道
- 19. 我可以通过Subversion subrepository获取Mercurial以自动签出吗?
- 20. 通过ViewDidLoad()获取图像?
- 21. Java:从BufferedImage中提取Alpha通道
- 22. 如何通过wx.bitmap获取图像的通道
- 23. 通过URI从网页获取图像
- 24. HBITMAP可以包含alpha通道信息吗?
- 25. 我们可以通过CDN提供HEIF图像吗?
- 26. Ruby:我可以通过它的ID获取实例吗?
- 27. 我可以通过iPhone SDK中的标签获取元素吗?
- 28. 我可以通过表名获取模型类的名称吗?
- 29. 我可以通过硒获取链接位置吗?
- 30. 我可以通过webService调用获取gridview的呈现html吗?
非常感谢,现在我会坚持这种方法,但是我仍然很好奇,如果我可以从CGImageRef获得CGPath,所以我希望你不介意我不把你的答案标记为还没有接受我们把它投票。 – dariaa
我不认为你可以开箱,除非你使用某种边缘提取算法。即使如此,我怀疑你的CGPath只是一个近似值。 – mprivat