rgb与hex颜色互转绝对实用

网站开发中难免会遇到颜色互转的情况,如改变图片颜色等。。

 

先来看下rgb转hex的方法

function rgb2hex(){
    hexColor = "#";
    var rgb = Array.prototype.slice.call(arguments);
    var rgbLength = rgb.length;
    for(var i=0; i<rgbLength; i++) {
        var c = "0123456789ABCDEF",
            b = "",
            a = rgb[i] % 16;
        b = c.substr(a, 1);
        a = (rgb[i]-a) / 16;
        hexColor += c.substr(a, 1) + b;
    }
    return hexColor;
}

// 调用
console.log(rgb2hex(255, 0, 0));  // #FF0000

 

看到其中的逻辑有被眩晕的请开净化召唤师技能解除控制,认真观看,不行的话在换个姿势,保证走位。。。大笑

 

其实原理不难,主要是对16进行运算,然后匹配组装,,当然可以不求甚解,,,进入下一局。。

 

第一局跪了,来第二局吧 -- hex转rgb

 

function hex2rgb(hexColor) {
    if (hexColor.substr(0, 1) == "#") hexColor = hexColor.substring(1);
    hexColor = hexColor.toLowerCase();
    b = new Array();
    for (x = 0; x < 3; x++) {
        b[0] = hexColor.substr(x * 2, 2)
        b[3] = "0123456789abcdef";
        b[1] = b[0].substr(0, 1)
        b[2] = b[0].substr(1, 1)
        b[20 + x] = b[3].indexOf(b[1]) * 16 + b[3].indexOf(b[2])
    }
    return b[20] + "," + b[21] + "," + b[22];
}

// 调用
console.log(hex2rgb('#ff0000'));  // 255,0,0

 

 

哎呀,又被控了,,,完全被眩晕了。。。只能收藏路过了。。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天空还下着雪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值