在css中定义颜色可以使用rgb颜色值,例:rgb(182, 0, 35);也可以使用16进制颜色值,例:#B60023。不管是rgb(182, 0, 35),还是#B60023都表示了同一种颜色,其实无论是用哪一种表示方法都行,但由于web页面的千变万化,遇到的情况也有可能千奇百怪,有时我们就需要把rgb与16进制颜色进行转换了。

我们来看看一个rgb与16进制颜色如何转换的例子。

对于十六进制颜色值,可以将它们两个划分为一组,从左到右分别代表RGB。两个十六进制数的第一个和十六相乘,结果加上第二个数,就得到一个0-255之间的数。

例如,有一个十六进制颜色值#B60023,将它转换为RGB就是:R(B6),G(00),B(23)。那么红色就是:B(11) x 16 + 6 = 182。绿色为0,蓝色为:2 x 16 +3 = 35。因此,十六进制颜色值#B60023对应的rgb()红色就是:rgb(182, 0, 35)。

那么如何使用JavaScript来实现rgb与16进制颜色的相互转换?我们来看看实现方法。

JavaScript实现颜色转换的核心就是进制间的转换。

RGB格式其实就是十进制表示法,所以,十六进制颜色与RGB颜色的转换就是十六进制与十进制之间的转换。

1、JavaScript实现RGB颜色转换为16进制(十进制转16进制)

十进制转换为16进制,核心代码如示例:

const num=255;
num.toString(16);

其结果是FF。

说明:toString里的参数“16”表示数值转换为16进制字符串。

rgb颜色转换为16进制 实例代码如下:

/*RGB颜色转换为16进制*/
function colorHex(rgbStr) {//十六进制颜色值的正则表达式const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;if (/^(rgb|RGB)/.test(rgbStr)) {const aColor = rgbStr.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(",");let strHex = "#";for (let i = 0; i < aColor.length; i++) {let hex = Number(aColor[i]).toString(16);if (hex === "0") {hex += hex;}strHex += hex;}if (strHex.length !== 7) {strHex = rgbStr;}return strHex;} else if (reg.test(rgbStr)) {const aNum = rgbStr.replace(/#/, "").split("");if (aNum.length === 6) {return rgbStr;} else if (aNum.length === 3) {let numHex = "#";for (let i = 0; i < aNum.length; i += 1) {numHex += (aNum[i] + aNum[i]);}return numHex;}} else {return rgbStr;}
};
console.log(colorHex("rgb(52,83,139)"))       // #17f538

2、JavaScript实现16进制颜色转化为rgb颜色

16进制转换为十进制相对容易些,核心代码如示例:

parseInt("0xFF");

其结果就是255

说明:”0x”就表明当前是16进制,由于parseInt后面无参数,所以默认就是转换为10进制了。

16进制颜色转化为rgb颜色 实例代码如下:

function colorRgb (colorStr) {//十六进制颜色值的正则表达式var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;var sColor = colorStr.toLowerCase();if (sColor && reg.test(sColor)) {if (sColor.length === 4) {var sColorNew = "#";for (var i = 1; i < 4; i += 1) {sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1));}sColor = sColorNew;}//处理六位的颜色值fvar sColorChange = [];for (var i = 1; i < 7; i += 2) {sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2)));}return "rgb(" + sColorChange.join(",") + ")";} else {return sColor;}
};
console.log(colorRgb("#34538b"))  // rgb(52,83,139)

总结:以上就是本篇文的全部内容,大家可以自己动手尝试,希望能对大家有所帮助。

颜色值转换网站:在线颜色转换

rgb与16进制颜色是如何相互转换的?相关推荐

  1. js实现rgb和16进制颜色的相互转化

    16进制转rgb transRgb(color) {var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;var sColor = color.toLowerC ...

  2. java后台如何将rgb与16进制颜色进行转换

    首先将rgb颜色转换成16进制 //**将rgb色彩值转成16进制代码**public String convertRGBToHex(int r, int g, int b) {String rFSt ...

  3. RGB与16进制颜色转换的原理

    Integer有进制转换的方法.也可以自己写进制转换的方法.

  4. Winform中实现颜色拾取器获取RGB与16进制颜色程序与源码分享

    场景 效果 实现 关键代码 using System; using System.Collections.Generic; using System.ComponentModel; using Sys ...

  5. Winform中实现实时颜色拾取器显示RGB和16进制颜色(附代码下载)

    场景 效果 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 新建一个窗体 ...

  6. js 根据深浅色背景,动态设置黑色白色文字颜色。判断颜色是否为深色,rgb转16进制,16进制转rgb

    效果图: 根据深浅色背景,返回黑白文字颜色. 第一版: 代码: <!DOCTYPE html> <html lang="en"> <head>& ...

  7. 【图片】Python对RGB颜色与16进制颜色进行互转

    RGB颜色被称为"真彩色",是Photoshop中默认使用的颜色,也是最常用的一种颜色模式.RGB模式的图像由3个颜色通道组成,分别为红色通道(Red).绿色通道(Green)和蓝 ...

  8. JS 颜色RGB转换为16进制 相互转换 方法

    /*RGB转换为16进制*/ const colorRgbToHex = (rgbStr: string) => {//十六进制颜色值的正则表达式constreg = /^#([0-9a-fA- ...

  9. js将16进制颜色转换成RGB格式

    js代码如下: function hexToRgb(hex) {     var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(h ...

最新文章

  1. RealPlayer 15正式发布 简体中文版下载
  2. python简单代码input-【python系统学习05】input函数——实现人机交互
  3. [Ubuntu] ThinkPad T410i linux下如何调节亮度
  4. 赋值给集合_ArrayList集合源码
  5. (四)nodejs循序渐进-函数,类和对象(基础篇)
  6. java 皮鞋_java反射
  7. vnc非授权访问漏洞
  8. 今天女同事说月经不调:加班加的!我们为什么不敢闲?
  9. 山东2021高考成绩查询时间二本,山东二本录取结果什么时候出来,2021年高考山东二本录取结果查询时间...
  10. Haproxy实现负载均衡及相关配置(添加日志、设定自动刷新时间、控制访问、动静分离、读写分离)
  11. netbeans linux 安装教程,linux下安装NetBeans 6.0
  12. LaTex安装及使用
  13. 利用Quartus-II进行仿真实验
  14. monkeytest方法-20171113
  15. CTex下载地址和方法
  16. 无线数字信息传送服务器,无线数字远程监控管理及网站实时推广项目方案.doc...
  17. ADSL 拨号代理的搭建
  18. 360随身wifi搭建无线热点
  19. windows10正式版官方原版镜像iso下载地址
  20. 验证码的java实现

热门文章

  1. spring框架学习 - 使用 Spring 的面向切面编程补充
  2. Java Study Notes_Design in 2023(Day15~)
  3. dellR720xd服务器做raid安装操作系统
  4. Vue2:网易云播放音乐并实现同步一次显示一行歌词
  5. 赚的钱不花掉就不算自己的钱?
  6. Faster R-CNN文章详细解读
  7. Linux下wait_for_completion引起的开机定屏
  8. 华为手机录屏大师录制的视频在本地目录找不到无法转移到PC的问题解决方案——免费转移视频
  9. 讲真,这可能是博客图床最佳解决方案
  10. Beautiful Soup 基础入门(实验楼学习笔记2)