【发布时间】:2015-10-05 21:41:06
【问题描述】:
我正在尝试读取 osx 颜色列表 (.clr),但无法解释颜色的值。
上下文:我正在为一个名为Sketch 的设计程序编写一个调色板插件。插件是用cocoascript 编写的,它是JS 和Objective-C/Cocoa 之间的桥梁。这允许你使用像 NSColor 这样的类
我正在使用此代码读取文件:
// Choose colorlist file ------------------------------------------
var openPanel = NSOpenPanel.openPanel();
openPanel.setCanChooseDirectories(true);
openPanel.setCanChooseFiles(true);
openPanel.setCanCreateDirectories(true);
openPanel.setTitle("Choose a file");
openPanel.setPrompt("Choose");
openPanel.runModal();
// Read colors from file ------------------------------------------
var filePath = openPanel.URLs().firstObject().path();
var fileName = filePath.lastPathComponent().stringByDeletingPathExtension();
var colorList = NSColorList.alloc().initWithName_fromFile(fileName, filePath);
var colorKeys = colorList.allKeys();
var color = colorList.colorWithKey(colorKeys[3]);
log(color);
这可行,我可以将颜色记录到 OS X 控制台应用程序。问题是我不确定如何使用输出:
NSCalibratedRGBColorSpace 0.0599575 0.220776 0.562826 1
CSS、Sketch 和 Photoshop 中的 rgba 值为
16, 77, 161, 1
我想也许它只是将范围从 255 缩放到 1。但是当我进行数学运算时,它并没有完全加起来。 b 值,例如:
0.562826 * 255 = 143.52063
但应该是 161。
还有其他方法可以转换颜色吗?
【问题讨论】:
-
为什么这个标签是Objective-C?发布的代码不是 Objective-C。
-
"Sketch 和 Photoshop 中的 rgba 值为 16、77、161、1" 没有颜色配置文件的 RGB 值几乎完全没用。你必须知道这些值是相对于什么颜色配置文件来表达的,才能理解它们。阅读我的回答here 了解更多信息。
-
@rmaddy Sketch Plugins 是由 CocoaScript 实现的,CocoaScript 是一个让您使用 JavaScript 编写的外部脚本中的 Objective-C/Cocoa 代码的桥梁。
标签: macos cocoa sketch-3 sketchapp cocoascript