RGB 색상의 밝기를 계산하는 방법은 무엇입니까?
-
13-11-2019 - |
문제
나는 내 기능을 가지고있다 :
-(void)rgbToHSBWithR:(float)red G:(float)green B:(float)blue {
float brightness = red * 0.3 + green * 0.59 + blue * 0.11; // found in stackoverflow
NSLog(@"%f",brightness);
}
.
그리고 그것은 나를 위해 작동하지 않습니다.
예 : r : 84 g : 67 B : 73.함수 리턴 72.760002.이 색상의 Photoshop 밝기에서는 33 %입니다.뭐가 잘못 됐니?
감사합니다.
해결책
UIColor
또는 NSColor
사용 :
-(void)rgbToHSBWithR:(float)red G:(float)green B:(float)blue {
// assuming values are in 0 - 1 range, if they are byte representations, divide them by 255
UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1];
float h, s, b;
if ([color getHue:&h saturation:&s brightness:&b alpha:NULL])
{
// h, s, & b now contain what you need
}
}
. 다른 팁
RGB 값 범위는 0에서 255까지의 범위가 0 ~ 99가 아닙니다. 백분율로 끝내려는 경우 먼저 나눌 필요가 있습니다.
float brightness = (red / 255.0) * 0.3 + (green / 255.0) * 0.59 + (blue / 255.0) * 0.11;
.
또한 "밝기"와 RGB 값 사이에 단일 변환이 없습니다. - Photoshop은 사용자와 다른 수식을 사용할 수 있습니다.더 많은 것을 알고 싶다면 "감마 FAQ " 및 "Charles Poynton의"Color FAQ "
제휴하지 않습니다 StackOverflow