2012-02-11 3 views
0

Есть ли «необоснованный мостовой» базовый аналог Core NSColor?NSColor Core Foundation коллега?

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

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

Подсказки по достоинству оценены.

ответ

1

Вы можете преобразовать 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:.

+0

Спасибо - да, я думаю, мы пойдем с категорией NSColor, которая инициализирует новый объект NSColor прямо из нашего класса-оболочки! – Jay

Смежные вопросы