RGB颜色值与十六进制颜色码互相转换代码

|▌冷眼眸甩不掉的悲伤 提交于 2019-11-30 04:30:03

RGB颜色值是我们常用的一种颜色标准,通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色。形如255, 255, 255。

十六进制颜色码就是在软件中设定颜色值的代码。在很多软件中,都会遇到设定颜色值的问题,发展来源人的眼睛看到的颜色有两种:一种是发光体发出的颜色,比如计算机显示器屏幕显示的颜色;另一种是物体本身不发光,而是反射的光产生十六进制颜色。形如#FF00000,通常有6位和3位两种。

工具地址:RGB颜色值与十六进制颜色代码转换工具

代码实现:

RGB转十六位颜色值:

    hexcode = "#";
    for (x = 0; x < 3; x++) {;
        var n = document.getElementsByName("r-value")[x].value;
        if (n == "") n = "0";
        if (parseInt(n) != n) {
            $('.loading-result-1').html('请输入数字!');
            $('.loading-result-1').removeClass('hide');
            $('.from-rgb-result').addClass('hide');
            return;
        }
        if (n > 255) {
            $('.loading-result-1').html('数字在0-255之间!');
            $('.loading-result-1').removeClass('hide');
            $('.from-rgb-result').addClass('hide');
            return;
        }
        var c = "0123456789ABCDEF",
        b = "",
        a = n % 16;
        b = c.substr(a, 1);
        a = (n - a) / 16;
        hexcode += c.substr(a, 1) + b
    }

十六位进制颜色转RGB:

    var a = $('#code-value').val();
    if (a.substr(0, 1) == "#") a = a.substring(1);
    a = a.toLowerCase();
    b = new Array();
    for (x = 0; x < 3; x++) {
        b[0] = len == 6 ? a.substr(x * 2, 2) : a.substr(x * 1, 1) + a.substr(x * 1, 1);
        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])
    }

其中,a就是输入的十六位进制颜色码,RGB分别位b[20] + "," + b[21] + "," + b[22]。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!