版权声明: https://blog.csdn.net/GISuuser/article/details/84875008
最近需要用到16进制颜色字符串转RGB值,看了一下网上的代码,层次不齐,抄袭太多,很多根本就是错的,其实自己一会就写出来了,懒得写,反而在网上来回找浪费了时间。
代码如下:
/**
* 16进制颜色字符串转RGB
* @param color {Sting}
* @returns {number[]}
*/
function stringToRGB(color){
let r,g,b;
if (color.length === 4) {//4位颜色处理,简写模式
r = parseInt(color.substring(1, 2)+color.substring(1, 2), 16);
g = parseInt(color.substring(2, 3)+color.substring(2, 3), 16);
b = parseInt(color.substring(3)+color.substring(3), 16)
} else {//7位颜色字符串处理
r = parseInt(color.substring(1, 3), 16);
g = parseInt(color.substring(3, 5), 16);
b = parseInt(color.substring(5), 16)
}
return [r,g,b]
}
/**
* 255RGB转16进制颜色字符串
* @param r {Number} 0-255红色分量
* @param g {Number} 0-255绿色分量
* @param b {Number} 0-255蓝色分量
* @returns {string} 16进制颜色字符串
*/
function rgbToString(r,g,b) {
return "#"+r.toString(16)+g.toString(16)+b.toString(16);
}