从 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}
我知道如何从 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}