2012-05-03 52 views
1

我嘗試做從UIColor採取B(亮度)的方法。如何正確獲取UIColor的亮度?

問題在方法的第二部分。當我記錄結果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。當我把它轉換成明亮的255倍時,我得到了:亮度:71.在任何情況下,我的亮度都等於紅色。 –

+0

當我比較我的亮度圖,等於紅色陰謀,所以每個亮度=紅色。在Photoshop或其他應用程序的亮度和紅色情節是不一樣的。 –

回答

3

答案是:

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

它的正常工作。