Я довольно плохо знаком с целью c, но программировал некоторое время. Я начал создавать функцию, которая преобразует от RGB до HSL и назад снова, но я получаю чувство, что это слишком длинно и шло в неправильном направлении. Кто-либо знает о простом способе выполнить это преобразование?
Вы можете добавить категорию UIColor-HSVAdditions.h / .m в свое приложение, чтобы добавить в UIColor набор операций для работы с оттенком, насыщенностью и значением. См. http://bravobug.com/news/?p=448 и это Также статья ArsTechnica .
Вы можете использовать NSColor
, я думаю.
CGFloat r, g, b, a, h, s, b, a2;
NSColor *c = [NSColor colorWithCalibratedRed:r green:g blue:b alpha:a];
[c getHue:&h saturation:&s brightness:&b alpha:&a2];
Если подумать, я не знаю, доступен ли NSColor
в фреймворках iPhone или нет - разве нет UIColor
? В любом случае, я оставлю этот ответ на случай, если кто-то, ищущий решение для OS X, окажется здесь.