繁体   English   中英

CGColor 到 UIColor 的转换

[英]CGColor to UIColor conversion

当我初始化 CGColor 并将其转换为 UIColor 时,它不会以与使用相同值初始化的 UIColor 相同的方式呈现。 如何在 CGColor 和 UIColor 之间转换并保持相同的外观?

这段代码产生了两个略有不同的 colors (见截图),尽管我希望 colors 是相同的:

self.view.backgroundColor = UIColor(red: 19/255.0, green: 25/255.0, blue: 28/255.0, alpha: 1.0)

let myCGColor = CGColor(red: 19/255.0, green: 25/255.0, blue: 28/255.0, alpha: 1.0)
self.secondView.backgroundColor = UIColor(cgColor: myCGColor)

顶部:UIColor / 底部:CGColor->UIColor 顶部:UIColor 底部:CGColor->UIColor

那是因为 CGColor 初始化程序使用不同的颜色空间。 UIColor 使用extendedSRGB,而CGColor 使用Generic RGB。

如果要获得相同的颜色,则需要在初始化 CGColor 时指定相同的颜色空间:

let myCGColor = CGColor(colorSpace: .init(name: CGColorSpace.extendedSRGB)!, components: [19.0/255, 25.0/255, 28.0/255, 1.0])!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM