Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 来自NSColor的RGB值_Macos_Cocoa_Sketch 3_Sketchapp_Cocoascript - Fatal编程技术网

Macos 来自NSColor的RGB值

Macos 来自NSColor的RGB值,macos,cocoa,sketch-3,sketchapp,cocoascript,Macos,Cocoa,Sketch 3,Sketchapp,Cocoascript,我试图读取osx颜色列表(.clr),在解释颜色值时遇到问题 上下文:我正在为一个名为的设计程序编写一个调色板插件。插件是用编写的,它是JS和Objective-C/Cocoa之间的桥梁。这允许您使用NSColor之类的类 我正在使用以下代码读取文件: //选择颜色列表文件------------------------------------------ var openPanel=NSOpenPanel.openPanel(); openPanel.setCanChoosedDirector

我试图读取osx颜色列表(.clr),在解释颜色值时遇到问题

上下文:我正在为一个名为的设计程序编写一个调色板插件。插件是用编写的,它是JS和Objective-C/Cocoa之间的桥梁。这允许您使用NSColor之类的类

我正在使用以下代码读取文件:

//选择颜色列表文件------------------------------------------
var openPanel=NSOpenPanel.openPanel();
openPanel.setCanChoosedDirectories(true);
openPanel.setCanChooseFiles(true);
openPanel.setCanCreateDirectory(true);
setTitle(“选择文件”);
setPrompt(“选择”);
openPanel.runModal();
//从文件中读取颜色------------------------------------------
var filePath=openPanel.url().firstObject().path();
var fileName=filePath.lastPathComponent().stringByDeletingPathExtension();
var colorList=NSColorList.alloc().initWithName_fromFile(文件名,文件路径);
var colorKeys=colorList.allKeys();
var color=colorList.colorWithKey(colorKeys[3]);
原木(彩色);
这是可行的,我可以将颜色记录到OSX控制台应用程序中。问题是我不确定如何使用输出:

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


是否有其他方法可以转换颜色?

您的
颜色
是一个对象,位于
nscalibratedrgcolorspace
中,它是标准RGB颜色空间。您可以通过官方方法将其转换为整数值

我为您将其转换为CoCoScript

var red = color.redComponent() * 255.99999;
var green = color.greenComponent() * 255.99999;
var blue = color.blueComponent() * 255.99999;

为什么这被标记为Objective-C?张贴的代码不是Objective-C。“草图和Photoshop中的rgba值是16、77、161、1”。没有颜色配置文件的RGB值几乎完全无用。您必须知道这些值相对于什么颜色配置文件来表示,才能理解它们。更多信息,请阅读我的答案。@rmaddy草图插件是由CocoaScript实现的,CocoaScript是一个桥梁,允许您使用JavaScript编写的外部脚本中的Objective-C/Cocoa代码。