Преобразование от RGB до HSL с Objective C

Я довольно плохо знаком с целью c, но программировал некоторое время. Я начал создавать функцию, которая преобразует от RGB до HSL и назад снова, но я получаю чувство, что это слишком длинно и шло в неправильном направлении. Кто-либо знает о простом способе выполнить это преобразование?

6
задан treeba 10 June 2010 в 19:01
поделиться

2 ответа

Вы можете добавить категорию UIColor-HSVAdditions.h / .m в свое приложение, чтобы добавить в UIColor набор операций для работы с оттенком, насыщенностью и значением. См. http://bravobug.com/news/?p=448 и это Также статья ArsTechnica .

0
ответ дан 9 December 2019 в 20:40
поделиться

Вы можете использовать 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, окажется здесь.

4
ответ дан 9 December 2019 в 20:40
поделиться