saz*_*azr 8 javascript c++ binary colors
如何将RGB颜色值转换为纯十进制?
所以我有:RGB(255,255,255)是白色
它的十进制等效值是:16777215
我试过想它可能只是:
var dec = r*g*b; // but this doesn't work
Run Code Online (Sandbox Code Playgroud)
虽然这不起作用.
有人知道要从RGB(或rgba)转换为十进制的算法/等式吗?
Way*_*ett 15
RGB整数通常被视为三个不同的字节,其中最左侧(最高位)字节为红色,中间字节为绿色,最右侧(最低位)字节为蓝色.您可以像这样检索这些单独字节的值:
var c = 0xff03c0; // 16712640
var components = {
r: (c & 0xff0000) >> 16,
g: (c & 0x00ff00) >> 8,
b: (c & 0x0000ff)
};
Run Code Online (Sandbox Code Playgroud)
您可以通过将字节移回来重新创建其组件的颜色:
c = (components.r << 16) + (components.g << 8) + (components.b);
Run Code Online (Sandbox Code Playgroud)
在您的情况下,只需components.r用您的实际变量替换(等).
小智 6
一个更好的答案(在清晰度方面)是这样的:
'Convert RGB to LONG:
LONG = B * 65536 + G * 256 + R
'Convert LONG to RGB:
B = LONG \ 65536
G = (LONG - B * 65536) \ 256
R = LONG - B * 65536 - G * 256
Run Code Online (Sandbox Code Playgroud)
LONG是您想要的长整数(十进制).好吧?当然,比特档
| 归档时间: |
|
| 查看次数: |
13943 次 |
| 最近记录: |