Javascript和PHP中的十进制到RGB

Wal*_*olk 4 javascript php rgb decimal

我试图将十进制值转换回RGB值.

假设这是编译小数值的公式

c = r*(255*255)+g*255+b
Run Code Online (Sandbox Code Playgroud)

(例如rgb(16,120,78)加起来为1071078)

如何在没有任何"溢出"的情况下解决r,g和b?

提前致谢!

Guf*_*ffa 7

使用除法,modulo(%)和floor舍入:

var r = Math.floor(c / (256*256));
var g = Math.floor(c / 256) % 256;
var b = c % 256;
Run Code Online (Sandbox Code Playgroud)

编辑:

halex在代码中发现了使用255和256的差异.当你将组件放在一起时,你应该(正如Millie Smith指出的那样)使用256而不是255:

var c = r * (256*256) + g * 256 + b;
Run Code Online (Sandbox Code Playgroud)

颜色组件的值可以是0到255,因此您需要乘以256以使下一个组件与前一个组件重叠.