CGLayers为什么不混合?

为什么obj2不与obj1混合,但不使用CGLayer它工作正常,与CGContextDrawLayerAtPoint相同的问题,CGLayer不支持CGContextSetBlendMode?CGLayers为什么不混合?

//Layer 

CGContextRef context = UIGraphicsGetCurrentContext();

CGLayerRef objectLayer = CGLayerCreateWithContext (context, rect.size, NULL);

CGContextRef objectContext = CGLayerGetContext (objectLayer);

//obj1

CGContextDrawImage(objectContext, CGRectMake(0, 0, rect.size.width, rect.size.height), [[UIImage imageNamed:@"background.png"] CGImage]);

//obj2

CGContextSetBlendMode(objectContext, kCGBlendModeSoftLight);

CGContextSetAlpha(objectContext, 0.5f);

CGContextDrawImage(objectContext, CGRectMake(0, 0, rect.size.width, rect.size.height), [[UIImage imageNamed:@"overlay1.png"] CGImage]);

CGContextDrawLayerInRect(context, rect, objectLayer);

回答:

你只是设置混合模式层的情况下,使图像呈现在一个透明的背景柔和的光线混合模式(我认为有渲染它的效果相同的顶部与正常混合模式)。

context的混合模式仍然设置为正常,所以图层(已渲染)将以该模式呈现。混合模式不会跨越上下文边界。

以上是 CGLayers为什么不混合? 的全部内容, 来源链接: utcz.com/qa/258508.html

回到顶部