欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

RGB与16进制颜色值的相互转换

程序员文章站 2024-03-18 14:45:34
...

提纲

javaScript语言中通过parseInt()和toString()进行数字与字符串之间的转换,这种相互间的转换在许多方面都有应用场景。

字符串转数字:parseInt(str, rad);

数字转字符串: toString(rad);

注意

  1. 一般通常用paseInt()的时候不写第二个参数,即不指定进制转换的基数时,有可能不会转换成功,结果为NaN, 指定第二个参数,便于parseInt函数识别字符串代表的数据类型,这个方法可用于颜色值从16进制转为十进制rgb(r,g,b)值。
  2. 同样一般在用toString()时,也可以不指定进制转换基数(默认为10,即默认转化为10进制数),但如果要转化为指定进制的数就需要指定基数了,这个方法可应用于颜色的rgb转16进制颜色。

场景1:

背景:

一道百度面试题目

需求:

将16进制颜色如#ffffff转为RGB(255,255,255)的形式

方案:

parseInt(string, radix) 解析一个字符串并返回指定基数的十进制整数

代码:

function transformHEXToGRB(str){
    
    let r = str.slice(1,3);
    let g = str.slice(3,5);
    let b = str.slice(5);
    
    
    return 'rgb('+parseInt(r,16)+','+parseInt(g,16)+','+parseInt(b,16)+')';
    
}
transformHEXToGRB('#ffffff') // rgb(255, 255,255)

场景2:

rgb转16进制颜色值

代码

function transformHEXToGRB(str){
   let value = str.slice(4,-1);
   let arr=value.split(',');
   let re="#"
   arr.forEach(v=>{       
    re+=parseInt(v).toString(16)
   }) 
   console.log(re) 
} 
transformHEXToGRB('rgb(155, 225,2)')// #9be12
相关标签: js javascript rgb