CGLayers为什么不混合?

weixin_38068071 2019-09-12 04:15:25

为什么obj2不与obj1混合,但不使用CGLayer它工作正常,与CGContextDrawLayerAtPoint相同的问题,CGLayer不支持CGContextSetBlendMode? //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);






...全文
27 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38068894 2019-09-12
  • 打赏
  • 举报
回复

你只是设置混合模式内层的情况下,使图像呈现在一个透明的背景柔和的光线混合模式(我认为有渲染它的效果相同的顶部与正常混合模式)。 context的混合模式仍然设置为正常,所以图层(已渲染)将以该模式呈现。混合模式不会跨越上下文边界。

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧