【问题标题】:how to get brightness from UIColor correctly?如何正确从 UIColor 获取亮度?
【发布时间】:2012-05-03 08:36:11
【问题描述】:

我尝试做从 UIColor 获取 B(brightness) 的方法。

问题出在方法的第二部分。当我记录结果时 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);

}

【问题讨论】:

  • 这可能发生(并且可能是正确的)。您要转换什么颜色?您希望收到什么颜色?
  • 在前。我想转换 71、52、58。当我转换它并将亮度乘以 255 时,我得到:亮度:71。在任何情况下,我的亮度都等于红色。
  • 当我比较我的亮度图时,等于红色图,所以每个亮度 = 红色。在 Photoshop 或其他应用程序中的亮度和红色绘图不一样。

标签: objective-c rgb uicolor brightness hsb


【解决方案1】:

答案是:

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

一切正常。

【讨论】:

  • 不错。你知道为什么你将红色乘以 0.3,绿色乘以 0.59,蓝色乘以 0.11 吗?试图了解这是如何工作的。
  • 灰度值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-02-26
  • 2010-10-01
  • 2014-06-15
  • 2013-03-03
  • 2011-12-22
  • 2012-09-24
  • 2023-03-26
相关资源
最近更新 更多