如何将大型 RGB 值数组转换为十六进制数组

问题描述 投票:0回答:1

它们当前的格式是 [r,g,b,r,g,b,...] 我需要一个像这样的十六进制值数组 [#rgb,#rgb,...] 具体而言,它是一个由 797 个数组组成的数组,每个数组包含 1176 个项目 它应该是 797 个数组,每个数组有 392 个项目 我找到了将 rgb 转换为十六进制的函数(如果格式如下) [[r,g,b][r,g,b],...] 但我拥有的数组不会以这种方式分解成更小的块 所以以太可以将整个事物转换为一个可以将其分解为三个的集合我可以只使用 foreach 循环 我不确定如何解决这个问题

javascript arrays hex rgb
1个回答
0
投票

有这样的事吗?

不清楚你是否有数组的数组

const rgbToHex = (r, g, b) => `#${((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1)}`;

const convertArrayToHexColors = (array) => array.map(subArray => 
  Array.from({ length: subArray.length / 3 }, (_, i) => 
    rgbToHex(subArray[i * 3], subArray[i * 3 + 1], subArray[i * 3 + 2])
  )
);


const hexColorArray = convertArrayToHexColors(exampleArray);
console.log(hexColorArray)
<script>
const exampleArray = [
    [255, 0, 0, 0, 255, 0, 0, 0, 255], 
    [128, 128, 128, 192, 192, 192, 64, 64, 64] 
];
</script>

© www.soinside.com 2019 - 2024. All rights reserved.