2011-04-15 98 views
1

如何将RGB分量(0-255)转换为浮点数,其中255为1.0f,0为0.0f?如何将RGB组件转换为C中的百分比?

+6

由255不是要去工作划分您的RGB出于某种原因? – 2011-04-15 21:06:28

+5

该死的。我是个白痴。 – 2011-04-15 21:09:28

+4

你错过了小学二年级吗? – ern0 2011-04-15 21:09:35

回答

4

划分有什么问题?

unsigned char red = 45; 
float percentage = red/255.0f; 
2

像这样:

int rgbValue = 123; 
float fpValue = rgbValue/255.0; 
2

如果你有在INT整个RGB值,你有这个选项。

//Color Component Percents 
#define CCP_ALPHA(argb) (((argb) & 0xFF000000) >> 24) /255.0f 
#define CCP_RED(rgb) (((rgb) & 0xFF0000) >> 16) /255.0f 
#define CCP_GREEN(rgb) (((rgb) & 0xFF00) >> 8)  /255.0f 
#define CCP_BLUE(rgb) ((rgb) & 0xFF)    /255.0f 


int main(int argc, char *argv[]) 
{ 
    int argb = 0xCCDD33EE; 
    printf("Alpha %.2f%%\nRed %.2f%%\nGreen %.2f%%\nBlue %.2f%%\n", 
      CCP_ALPHA(argb) * 100, 
      CCP_RED(argb) * 100, 
      CCP_GREEN(argb) * 100, 
      CCP_BLUE(argb) * 100); 
} 

输出

Alpha 80.00% 
Red 86.67% 
Green 20.00% 
Blue 93.33%