我想检查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;
}