NSColor Core Foundation коллега? - PullRequest
       28

NSColor Core Foundation коллега?

0 голосов
/ 11 февраля 2012

Существует ли бесплатный базовый аналог NSColor с мостовым соединением?

CGColorRef не похоже на NSColor и наоборот?

По сути, мы хотели бы создавать NSColor (или совместимые) объекты из наших классов оболочки / фреймворка C ++, которые хранят фактические значения r / g / b / a. Я знаю, что мы могли бы использовать Objective-C ++, но пребывание в мире C ++ было бы предпочтительнее!

Любые намеки очень ценятся.

1 Ответ

1 голос
/ 11 февраля 2012

Вы можете преобразовать CGColorRef в NSColor следующим образом:

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

Если вы часто используете это, то, вероятно, лучше поместить это в метод категории NSColor.

Если все ваши цвета находятся в цветовом пространстве RGBA, может быть проще просто использовать простой struct в вашем коде C ++ и использовать colorWithCalibratedRed:green:blue:alpha: для преобразования.

...