我試圖在泛型RGB色彩空間中將包含顏色的字符串轉換爲Swift中的UIColor。例如,一個典型的字符串應該是這樣的:在Swift初始化泛型RGB
0.121569 0.129412 0.156863 1
使用在MacOS上拾色器,我發現這些值是使用通用RGB色彩空間。
然而,當我嘗試將這些值轉換成的UIColor,它採用了sRGB色彩空間。
let red = CGFloat((components[0] as NSString).doubleValue)
let green = CGFloat((components[1] as NSString).doubleValue)
let blue = CGFloat((components[2] as NSString).doubleValue)
let alpha = CGFloat((components[3] as NSString).doubleValue)
print(UIColor(red: red, green: green, blue: blue, alpha: alpha))
// Log Result: NSCustomColorSpace sRGB IEC61966-2.1 colorspace 0.121569 0.129412 0.156863 1
因此,在我的應用程序中顯示不同的顏色。我在拾色器改變色彩空間IEC61966-2.1證實了這一點,它確實顯示不同的值:
任何想法,我將如何通用RGB值轉換成正確的UIColor值?
編輯爲了澄清,我不能,因爲我從外部源通過色彩空間的方法是閱讀的顏色在一個XML文件
你的意思是正確的UIColor值? NSColor它只是OS X –