gpt4 book ai didi

cocoa - 将 NSColor 组件保存到文件

转载 作者:行者123 更新时间:2023-12-03 17:38:21 26 4
gpt4 key购买 nike

我正在尝试将 NSColor 的实例保存到如下文件中:

  writeF(node.lineColour.hueComponent)
writeF(node.lineColour.saturationComponent)
writeF(node.lineColour.brightnessComponent)
writeF(node.lineColour.alphaComponent)

写入函数在哪里:

  func writeF(var val: CGFloat) -> Bool {    
let nsd = NSData(bytes: &val, length: sizeof(CGFloat))
let rv = oStream!.write(UnsafePointer(nsd.bytes), maxLength: sizeof(CGFloat))
return rv > 0
}

“node.lineColour”只是 NSColor.blueColor()。一切都编译正常,但在第一个“writeF”行给出运行时消息:

2015-10-01 07:57:43.871 canl[77917:8371660] 引发了未捕获的异常2015-10-01 07:57:43.871 canl[77917:8371660] *** -hueComponent 对于 NSColor NSCalibrateWhiteColorSpace 0 1 无效;需要首先转换色彩空间。

Apple 关于色彩空间的文档非常深奥(如果您已经理解它,那么它是一个很好的引用,但如果没有那么......祝您好运)。为什么上面的代码是错误的呢?至少应该能够检索颜色分量(CGFloat)。

最佳答案

在浏览了可用的文档并尝试了不同的方法之后,我发现这是可行的:

  let aColor = node.lineColor.colorUsingColorSpaceName(NSCalibratedRGBColorSpace)

if let culoare = aColor {
writeF(culoare.redComponent)
writeF(culoare.greenComponent)
writeF(culoare.blueComponent)
writeF(culoare.alphaComponent)
}

它也适用于获取色调、饱和度和亮度分量,但我想我会选择 RGB。

关于cocoa - 将 NSColor 组件保存到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32889659/

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