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

标签 javascript bit-manipulation boolean-logic

我已经可以像这样将 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 相结合:

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

(您可以在这里使用按位或 | 而不是 +,结果是一样的)。

关于javascript - 在 Javascript 中将 rgba 值转换为一个整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17945972/

相关文章:

javascript - 如何使用局部变量将默认值设置为 Html.dropdownlist

java - 循环访问 java BigInteger 中的各个位

c++ - C++中的十六进制到字符串的转换

boolean - 什么是按位运算符?

algorithm - ROBDD的组成

python - 如何重新排序 bool 逻辑以更快地短路?

javascript - 使用 XML 更新时钟选择器输入字段

javascript - 在 JS 中生成非常长的字符串(数十兆字节)的最有效方法

javascript - 创建一个简单的唯一预订 ID 函数

c++ - 大输入(64 位)在计算 C++ 中的 64 位整数中的位数时给出意想不到的结果