gpt4 book ai didi

iphone - CGContextClipToMask 在内部是如何工作的?

转载 作者:行者123 更新时间:2023-11-29 13:20:56 25 4
gpt4 key购买 nike

到目前为止,我正在尝试在 iOS 上复制 CGContextClipToMask 的行为,但运气不佳。有谁知道 CGContextClipToMask 在内部是如何工作的?我已经阅读了文档,它说它只是将图像 alpha 值乘以蒙版 alpha 值,这就是我在自定义函数中所做的,但是当我多次使用正常混合将结果图像绘制到 CGContext 上时,结果变得越来越暗,而使用 CGContextClipToMask 结果是正确的并且不会变暗。

我的理论是 CGContextClipToMask 以某种方式使用目标上下文,除了图像和 mask 来产生正确的结果,但我对核心图形的了解还不够确定。

我也读过这个问题:

How to get the real RGBA or ARGB color values without premultiplied alpha?

我可能遇到了这个问题,但是 CGContextClipToMask 如何解决 8 位 alpha 的精度损失问题?

最佳答案

我发现了问题。乘以掩码时,我必须像这样对 RGB 值进行 ceilf 调用:

float alphaPercent = (float)maskAlpha / 255.0f;
pixelDest->A = maskAlpha;
pixelDest->R = ceilf((float)pixelDest->R * alphaPercent);
pixelDest->G = ceilf((float)pixelDest->G * alphaPercent);
pixelDest->B = ceilf((float)pixelDest->B * alphaPercent);

令人惊讶的是,这解决了问题......

关于iphone - CGContextClipToMask 在内部是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14384819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com