到目前为止,我正在尝试在 iOS 上复制 CGContextClipToMask 的行为,但没有任何运气。有谁知道 CGContextClipToMask 在内部是如何工作的?我已经阅读了文档,它说它只是将图像 alpha 值乘以掩码 alpha 值,所以这就是我在自定义函数中所做的,但是当我使用正常混合多次绘制结果图像到 CGContext 时,结果变得越来越暗,而使用 CGContextClipToMask 结果是正确的并且不会变暗。
我的理论是 CGContextClipToMask 以某种方式使用目标上下文,除了图像和掩码来产生正确的结果,但我对核心图形的了解还不够确定。
我也读过这个问题:
如何在没有预乘 alpha 的情况下获得真正的 RGBA 或 ARGB 颜色值?
我可能会遇到这个问题,但是 CGContextClipToMask 如何解决 8 位 alpha 的精度损失问题?