Используя Objective C мне нужно объединить 4 цвета CMYK в один. - PullRequest
1 голос
/ 09 сентября 2011

Будучи объективным новичком в C, и не так уж много программистом, я борюсь с различными графическими библиотеками, которые Apple поставляет вместе с Xcode SDK ver 4.1.Есть Какао, Open GL ES, Quartz 2D и различные другие слои (каркасы) графических функций высокого и низкого уровня.Я просто хочу объединить 4 конкретных цвета и показать их на iPad, iPhone, iPod Touch.

Я понимаю, что могу конвертировать цвета CMYK в RGBA без особой разницы с оптической точки зрения, но я полагаю, что объединение цветов в один цветовой объект в Objective C является моей проблемой.Я смотрел на многоуровневое представление, режимы смешивания изображений в Quartz и т. Д. Я не уверен, нужно ли мне сначала создавать файлы BMP, или что.Я полагаю, что для новичка все это немного ошеломляет, и я был бы признателен за некоторые рекомендации по выяснению графической концепции / терминологии, а затем, возможно, помог бы выбрать, какой графический фреймворк может сделать эту работу.

Ответы [ 2 ]

6 голосов
/ 09 сентября 2011

Нет смысла конвертировать CMYK в RGB.Вам просто нужно создать свой цвет, используя CGColor и цветовое пространство CYMK.

CGColorSpaceRef cmykColorSpace = CGColorSpaceCreateDeviceCMYK();
CGFloat colors[5] = {1, 1, 1, 1, 1}; // CMYK+Alpha
CGColorRef cgColor = CGColorCreate(cmykColorSpace, colors);
UIColor *uiColor = [UIColor colorWithCGColor:cgColor];
CGColorRelease(cgColor);
CGColorSpaceRelease(cmykColorSpace);

Теперь вы можете использовать этот цвет, чтобы делать все, что вы хотите.

0 голосов
/ 04 мая 2012

Ответ Роба довольно крутой - я никогда не знал об этой функции CGColorCreate.

Если вы хотите настроить сочетание цветов, вы можете использовать мою категорию на UIColor - вы можете изменить алгоритм микширования вметоды класса, если вы выберете (я надеюсь, что те, которые я кодировал, довольно хороши).Эта категория также поддерживает объединение в RGB или RYB.

https://github.com/ddelruss/UIColor-Mixing

Enjoy,

Damien

...