2012-05-03 2 views
1

Я пытаюсь сделать метод, который принимает B (яркость) от UIColor.Как правильно получить яркость от UIColor?

проблема есть во второй части метода. когда i log result bri равно _red. Где проблема?

-(void)rgbToHSBWithR:(float)_red G:(float)_green B:(float)_blue { 
_red = _red/255.0; 
_green = _green/255.0; 
_blue = _blue/255.0; 
UIColor *color = [UIColor colorWithRed:_red green:_green blue:_blue alpha:1]; 

float hue, sat, bri, alpha; 

[color getHue:&hue saturation:&sat brightness:&bri alpha:&alpha]; 

NSLog(@"R: %f, G: %0.2f, B: %0.2f, V: %f", _red, _green, _blue, bri); 

}

+0

Это может произойти (и может быть правильным). какой цвет вы пытаетесь преобразовать и что вы ожидаете получить? – kuba

+0

в бывшем. Я хочу конвертировать 71, 52, 58. Когда я его конвертирую и умножу на 256, я получил: Яркость: 71. В каждом случае моя яркость равна красному. –

+0

, когда я сравниваю свой график яркости, равен красной графике, поэтому каждая яркость = красный. в Photoshop или других приложениях яркость и красный график не совпадают. –

ответ

3

Ответ:

b = (red/255.0) * 0.3 + (green/255.0) * 0.59 + (blue/255.0) * 0.11; 

он работает нормально.