JavaScript16进制颜色字符串和RGB互转

版权声明: 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);
}

猜你喜欢

转载自blog.csdn.net/GISuuser/article/details/84875008