2012-02-11 12 views
0

NSColorに対応する「フリーダイヤル・ブリッジド」コア・ファウンデーションの対応はありますか?NSColor Core Foundationの対応版ですか?

CGColorRefは、NSColorのように見えません。

基本的には、実際のr/g/b/a値を格納するC++ラッパー/フレームワーククラスからNSColor(または互換性のある)オブジェクトを作成したいと考えています。私はObjective-C++を使うことができると知っていますが、C++の世界に滞在することは好ましいことです!

多くのヒントがあります。

答えて

1

次のようなNSColorCGColorRefを変換することができます:あなたはこのロット使用する場合

CGColorRef cgColor = ...; 
NSColorSpace *colorSpace = [[[NSColorSpace alloc] initWithCGColorSpace:CGColorGetColorSpace(cgColor)] autorelease]; 
NSColor *nsColor = [NSColor colorWithColorSpace:colorSpace 
            components:CGColorGetComponents(cgColor) 
              count:CGColorGetNumberOfComponents(cgColor)]; 

が、それはNSColorカテゴリメソッドでこれを置くために、おそらく最善です。

色がすべてRGBA色空間にある場合は、C++コードで単純なstructを使用し、変換にcolorWithCalibratedRed:green:blue:alpha:を使用する方が簡単かもしれません。

+0

ありがとうございます - はい、ラスタークラスから新しいNSColorオブジェクトを直接初期化するNSColorカテゴリに行くと思います! – Jay

関連する問題