从 0xRRGGBBAA 获取 rgba 值

Get rgba value from 0xRRGGBBAA

我知道如何从 0xRRGGBB 获取值:

const hex = 0xFF0000;
const r = hex >> 16 & 255; // 255
const g = hex >> 8 & 255; // 0
const b = hex & 255;

但我找不到从 0xRRGGBBAA 中提取相同值 + alpha 的方法。

那就太好了。

只是8位移位一个掩码。

const hex = 0xFFAABBCC;
const r = hex >> 24 & 255;
const g = hex >> 16 & 255;
const b = hex >> 8 & 255;
const a = hex & 255;

你也可以这样做

const hexCut = (v,n) => [...n].reduce((r,c,i,{length:z})=>
  { r[c] = v >>8*(--z-i) & 255; return r },{})

console.log( hexCut(0xFF0000,'rgb'))
console.log( hexCut(0xFF000001,'rgba'))
.as-console-wrapper {max-height: 100%!important;top:0}