У меня есть цвет в десятичной форме, и мне нужно преобразовать его в rgb и обратно в de, поэтому я использовал это для этого:
var currentcolor = 0xffd100;
const rgb_format = (c) => {
var newrgb = {r: (c & 0xff0000) >> 16,
g: (c & 0x00ff00) >> 8,
b: (c & 0x0000ff)}
return newrgb;
};
var rgb = rgb_format(currentcolor);
const decimal_format = (newrgb) => {
let decimal = (newrgb.r << 16) + (newrgb.g << 8) + (newrgb.b);
console.log(decimal);
return decimal;
};
color.color = decimal_format(rgb);
Дело в том, что у меня есть редактор rgb с ползунками для каждое значение (r, g, b). И они работают как надо, но когда значение равно r
или меньше, другие ползунки (g, b) перестают менять цвет компонента, который я редактирую.
То же самое происходит, когда r
и b
равны 0, а g
больше 16. В этом случае g меняет цвет на красный, когда он меньше 16, а когда больше 16, он не отображает цвет. Вот gif, чтобы показать мою проблему: color-edit-problem-gif или alternate