Значения RGB от NSColor

Я пытаюсь прочитать список цветов osx (.clr) и не могу интерпретировать значения цветов.

контекст: я пишу плагин цветовой палитры для программы дизайна под названием Sketch. Плагины написаны на кокоаскрипте, который является мостом между 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 Console. Проблема в том, что я не уверен, как использовать вывод:

NSCalibratedRGBColorSpace 0.0599575 0.220776 0.562826 1

значение rgba в CSS, Sketch и Photoshop

16, 77, 161, 1

Я подумал, что, возможно, он просто масштабировал диапазон от 255 до 1. Но когда я делаю математику, это не совсем складывается. Значение b, например:

0.562826 * 255 = 143.52063

но это должно быть 161.

Есть ли какой-то другой способ преобразования цвета?

1 ответ

Ваш color является объектом NSColor, в NSCalibratedRGBColorSpace, которое является стандартным цветовым пространством RGB. Вы можете преобразовать его в целочисленные значения официальным методом.

https://developer.apple.com/library/mac/qa/qa1576/_index.html

Я превращаю это в CocoaScript для вас.

var red = color.redComponent() * 255.99999;
var green = color.greenComponent() * 255.99999;
var blue = color.blueComponent() * 255.99999;
Другие вопросы по тегам