• 一些颜色相关的算法


    RBG转灰度

    //rgba(grey,grey,grey,1)
    function rgb2Grey(r,g,b)
    {
    	var grey=Math.round((r*299 + g*587 + b*114 + 500) / 1000)
    	return grey
    }
    

    判断两种颜色相似程度

    //rbg
    function isSimilarColorRBG(r1, g1, b1, r2, g2, b2, offset)
    {
    	if (Math.sqrt((r1 - r2) * (r1 - r2) + (g1 - g2) * (g1 - g2) + (b1 - b2) * (b1 - b2)) < offset)
    	{
    		return true;
    	}
    	else
    	{
    		return false;
    	}
    }
    
    //hex
    function isSimilarColorHEX(sHexColorA, sHexColorB, nOffset)
    {
    	this.offsetNum = Math.abs(nOffset);
    	this.offsetNum > 255 ? this.offsetNum = this.offsetNum - 256 : "";
    	var arrNumA = [parseInt(sHexColorA.substring(0, 2), 16),
    		parseInt(sHexColorA.substring(2, 4), 16),
    		parseInt(sHexColorA.substring(4, 6), 16)
    	];
    	var arrNumB = [parseInt(sHexColorB.substring(0, 2), 16),
    		parseInt(sHexColorB.substring(2, 4), 16),
    		parseInt(sHexColorB.substring(4, 6), 16)
    	];
    	for (var i = 0; i < arrNumA.length; i++)
    	{
    		if (Math.abs(arrNumA[i] - arrNumB[i]) > this.offsetNum)
    		{
    			return false;//不相似
    		};
    	}
    	return true;//相似
    }
    

      

    RGB转HEX

    //rgb2Hex("rbg(r,g,b)")
    
    function rgb2Hex(rgb)
    {
    	var color = rgb.toString().match(/d+/g); 
    	var hex = "#";
    	for (var i = 0; i < 3; i++)
    	{
    		hex += ("0" + Number(color[i]).toString(16)).slice(-2);
    	}
    	return hex;
    }
    

     

    HEX转RGB

    //hex2Rgb("#ff00ff")
    function hex2Rgb(a)
    {
        if (a.substr(0, 1) == "#") a = a.substring(1);
        var len = a.length;
        a = a.toLowerCase();
        var 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])
        }
        console.log(b[20] + "," + b[21] + "," + b[22]);
    }
    

      

  • 相关阅读:
    .NET程序员面试小技巧
    .ashx一般处理程序
    地铁线路图的设计与实现
    BS与CS的区别
    关于sqlserver2005异地自动备份
    二问唐骏:究竟是打工好还是创业好
    再燃中国激情 “创业指南针”团队首推创业专著
    读者看《赢道:成功创业者的28条戒律》
    创业必看:中国八大草根富豪发家史
    让你快乐,是我恒久写诗的唯一目的
  • 原文地址:https://www.cnblogs.com/luoeeyang/p/7089282.html
Copyright © 2020-2023  润新知