【发布时间】:2016-10-25 02:30:00
【问题描述】:
问题是:
在 iPhone7 上工作时,
我从UIView 得到CGContextRef,那么bitsPerPixel 是64。因为我的 .a 只能使用 bitsPerPixel 为 32 的传统 RGB 颜色空间位图缓冲区,
有人知道如何将色彩空间为广色域的CGContextRef 转换为tranditional CGContextRef,就像在iPhone6 上一样吗?
【问题讨论】:
-
这只是一个想法。好的,宽颜色是一个特征(UIDisplayGamut)。因此,也许您可以使用自定义容器视图控制器,这样您就可以调用
setOverrideTraitCollection(_:forChildViewController:)并欺骗您的子视图控制器,使其相信它在没有宽颜色的设备上运行。 -
@matt 非常感谢 anwser,我会试一试。昨天想办法处理宽色,设置UIView的图层属性“contentsFormat”为kCAContentsFormatRGBA8Uint,那么从runtime得到的CGContextRef就是32 bitsPerPixel
-
如果可行,您应该将其发布为答案!这种宽颜色的东西肯定会引起一些混乱,所以你在这里的工作可能对其他人非常有用。 (另外请注意,我不知道我的想法是否可行!我需要你为我尝试一下。)
-
@matt 我试过你的想法,但似乎失败了。但我发现的方法很好用。
-
太好了。请将其发布为答案!
标签: ios cgcontextref