Можем ли мы отрендерить только небольшую часть CALayer? - PullRequest
0 голосов
/ 18 июня 2020

Я хочу проверить альфа-значение точки в CALayer. Для этого рендеринга полный слой для меня слишком дорог. Есть ли способ визуализировать только небольшую необходимую часть 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...