hex转换成rgb

https://www.webpagefx.com/web-design/hex-to-rgb/
### 如何在JavaScript中实现RGBA、RGBHEX颜色值之间的转换 #### RGBA 转 RGB 当处理RGBA转RGB时,通常需要考虑透明度的影响以及背景的颜色。如果假设背景为纯白(#FFFFFF),可以使用以下方法: ```javascript function rgbaToRgb(r, g, b, a) { var backgroundR = 255; // 白色背景 R 值 var backgroundG = 255; // 白色背景 G 值 var backgroundB = 255; // 白色背景 B 值 var red = Math.round((1 - a) * backgroundR + a * r); var green = Math.round((1 - a) * backgroundG + a * g); var blue = Math.round((1 - a) * backgroundB + a * b); return `rgb(${red}, ${green}, ${blue})`; } ``` 此函数通过计算前景色和背景色的混合来得出最终的RGB值[^1]。 --- #### HEXRGB 对于HEXRGB转换,可以通过解析字符串并提取相应的红绿蓝分量完成: ```javascript function hexToRgb(hex) { var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); return result ? [ parseInt(result[1], 16), parseInt(result[2], 16), parseInt(result[3], 16) ] : null; } ``` 上述正则表达式用于匹配标准六位数HEX格式的颜色码,并将其分解成三个部分分别对应红色、绿色和蓝色通道。 --- #### RGBHEX 反过来,从RGB数值生成对应的HEX表示形式也很简单: ```javascript function rgbToHex(r, g, b) { return "#" + ((1 << 24) | (r << 16) | (g << 8) | b).toString(16).slice(1).toUpperCase(); } ``` 这里利用了按位操作符快速拼接各色彩成分,并确保输出始终带有前缀`#`号[^2]。 --- #### 组合应用实例 下面展示了一个完整的例子,它展示了如何先定义一系列基于RGB模型的基础颜色,再借助之前提到过的工具函数把它们全部转化为另一种表现方式——即十六进制编码串列表: ```javascript const baseColors = [[255,99,71],[0,191,255]]; let hexCodes = []; for(let i=0;i<baseColors.length;i++) { let currentColor = baseColors[i]; let convertedHexCode = rgbToHex(...currentColor); hexCodes.push(convertedHexCode); } console.log(hexCodes); // 输出 ["#FF63AF", "#00BFFF"] ``` 以上片段说明了怎样批量地将给定的一组RGB三元组映射至其各自的HEX标记上。 --- ### 注意事项 需要注意的是,在实际开发过程中可能还会遇到更复杂的场景比如支持短格式(`#abc`)或者带alpha通道的信息等情况,则需进一步扩展这些基本功能以满足需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值