1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > WEB开发 十进制RGB颜色转化为标准代码或十六进制

WEB开发 十进制RGB颜色转化为标准代码或十六进制

时间:2018-11-01 05:56:42

相关推荐

WEB开发 十进制RGB颜色转化为标准代码或十六进制

今天做web交互的时候对服务器下发的rgb色百思不得其解,竟然是一串数字而且还有负数,后来观察了几列数据后发现其白色有可能为16777215或-1,那么意味着当数字小于0时会加上16777216,于是我百度了一下这个数字顿时茅塞顿开,原来是rgb所能表达的最大颜色(256 * 256 * 256),但是网页肯定必须使用rgb或者十六进制来表示,那么就写了个函数来转换一下:

// 转化为 255,255,255 这样的格式

function rgbFormat (value) {var r = (value & 0xff0000) >> 16;var g = (value & 0x00ff00) >> 8;var b = (value & 0x0000ff);return r + ',' + g + ',' + b;}

// 转换为十六进制 prefix增加前缀可以方便直接生成带#号的颜色

function rgbHex (value, prefix) {var code = parseInt(value);var prefix = prefix || '';if (code < 0) {code = (256 * 256 * 256) + code;}var hex = code.toString(16);return prefix + (Array(6).join(0) + hex).slice(-6);}var code = parseInt(value);var prefix = prefix || '';if (code < 0) {code = (256 * 256 * 256) + code;}var hex = code.toString(16);return prefix + (Array(6).join(0) + hex).slice(-6);}

转换为16进制的时候关键要注意小于0时补成正数,以及十六进制不满6位不足自动补零(不然浏览器也识别不出来)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。