在Javascript中将rgba值转换为一个整数

Converting rgba values into one integer in Javascript

本文关键字:一个 整数 中将 Javascript rgba 转换      更新时间:2023-09-26

我已经可以将32位整数转换为它们的rgba值,如下所示:

pixelData[i] = {
        red: pixelValue >> 24 & 0xFF,
        green: pixelValue >> 16 & 0xFF,
        blue: pixelValue >> 8 & 0xFF,
        alpha: pixelValue & 0xFF
    };

但我真的不知道如何逆转。

要反转它,只需要将字节组合成一个整数。只需使用左移并添加它们,它就会起作用。

var rgb = (red << 24) + (green << 16) + (blue << 8) + (alpha);

或者,为了更安全,您可以先用0xFF:对它们中的每一个进行AND

var r = red & 0xFF;
var g = green & 0xFF;
var b = blue & 0xFF;
var a = alpha & 0xFF;
var rgb = (r << 24) + (g << 16) + (b << 8) + (a);

(此处可以使用逐位OR |而不是+,结果相同)