OSX カラーリスト (.clr) を読み込もうとしていますが、色の値を解釈するのに問題があります。
コンテキスト: Sketchというデザイン プログラム用のカラー パレット プラグインを作成しています。プラグインは、JS と Objective-C/Cocoa の間のブリッジであるcocoascriptで記述されています。これにより、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でなければなりません。
色を変換する必要がある他の方法はありますか?