ios - 我们可以只渲染CALayer的一小部分吗?
问题描述
我想检查 CALayer 中某个点的 alpha 值。对于那个渲染,完整的图层对我来说太贵了。有没有一种方法可以围绕问题点只渲染 CAlayer 的一小部分?
代码:
(BOOL) transparentPoint:(CGPoint)point
{
unsigned char pixel[4] = {0};
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(pixel, 1, 1, 8, 4, colorSpace, kCGBitmapAlphaInfoMask & kCGImageAlphaPremultipliedLast);
CGContextTranslateCTM(context, -point.x, -point.y);
[self.layer renderInContext:context];
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
CGFloat alpha = pixel[3]/255.0;
BOOL transparent = alpha < 0.01;
return transparent;
}
解决方案
推荐阅读
- dns - 使用主机名但 IP 无法访问 PC
- ruby-on-rails - 如何使用 HTTParty gem 与 Rails5 中的外部搜索 API 交互?
- python - 将数据从字典加载到 MultiIndex 数据框中
- excel - 表 1 中的 VBA 数据与 A 列表 2 中的任何单元格匹配
- angular - 如何在 Angular 路由中使用数组?
- java - 一对多关系支持读取但不插入
- javascript - 从 PHP 中的获取返回中捕获变量
- python - 第一次通过重复功能
- ansible - 使用 ansible url 模块设置 bitbucket 分支权限
- python - OpenCV 网络摄像头问题