2

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でなければなりません。

色を変換する必要がある他の方法はありますか?

4

1 に答える 1

0

Yourcolorは、標準の RGB 色空間である のNSColorオブジェクトです。NSCalibratedRGBColorSpace公式の方法で整数値に変換できます。

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;
于 2016-03-23T14:13:47.050 に答える