微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在C中将RGB分量转换为百分比?

如何解决如何在C中将RGB分量转换为百分比?

| 如何将RGB分量(0-255)转换为浮点数,其中255为1.0f,0为0.0f?     

解决方法

除法有什么问题?
unsigned char red = 45;
float percentage = red/255.0f;
    ,像这样:
int rgbValue = 123;
float fpValue = rgbValue / 255.0;
    ,如果您在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%
    

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。