网页开发中经常会遇到十进制RGB颜色和十六进制颜色转化的问题,比如用QQ截图时就能显示鼠标所在位置的RGB颜色,下面写成函数的形式供调用方便,轻松实现RGB颜色和十六进制颜色转化。
RGB颜色转化为16进制颜色
1、RGB颜色转化为16进制颜色://十进制转化为16进制function hex(x){ return ("0" + parseInt(x).toString(16)).slice(-2);}//RGB颜色转为十六进制颜色function RGB2HEX(rgb){ rgb = rgb.match(/^rgb\((\d+),\s*(\d+),\s*(\d+)\)$/); return "#" + hex(rgb[1]) + hex(rgb[2]) + hex(rgb[3]);}
2、调用方法:RGB2HEX("rgb(255,255,255)");输出结果:#ffffffRGB2HEX("rgb(25,25,25)");输出结果:#191919
16进制颜色转化为RGB颜色
1、16进制颜色转化为RGB颜色://十六进制数字转化为十进制数字function HEX2DEC(hex){ return parseInt(hex,16).toString();}//十六进制颜色转化为RGB颜色function HEX2RGB(hex){ hex = hex.substring(1); if(hex.length === 3){ hex += hex; } return "rgb("+HEX2DEC(hex.substring(0,2))+","+HEX2DEC(hex.substring(2,4))+","+HEX2DEC(hex.substring(4))+")";}
2、调用方法:HEX2RGB("#FFFFFF");输入结果:rgb(255,255,255)HEX2RGB("#666");输入结果:rgb(102,102,102)