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

发布于 2024-11-01 20:11:31 字数 56 浏览 7 评论 0原文

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

How do I conver an RGB component (0-255) to a floating point number in which 255 would be 1.0f and 0 would be 0.0f?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

彼岸花ソ最美的依靠 2024-11-08 20:11:31

划分有什么问题吗?

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

What's wrong with dividing?

unsigned char red = 45;
float percentage = red/255.0f;
轮廓§ 2024-11-08 20:11:31

像这样:

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

Like this:

int rgbValue = 123;
float fpValue = rgbValue / 255.0;
樱桃奶球 2024-11-08 20:11:31

如果 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%

And if you have the entire rgb value in the int you have this option.

//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);
}

Output

Alpha 80.00%
Red 86.67%
Green 20.00%
Blue 93.33%
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文