javascript代码实例教程-javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)

发布时间:2019-02-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了javascript代码实例教程-javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
小宝典致力于为广大程序猿(媛)提供高品质的代码服务,请大家多多光顾小站,小宝典在此谢过。

PRoLOGue

看见一篇很好的外国文章,Making annoying rainbows in javascript,其实我当时很想把它翻译下来的,但是对于一个连六级都没过的人确实有点难度,一些文段看起来是知道意思但是就不知道怎么用自己的话来表达。越来越觉得对于IT行业来说英语至少要达到能读的程度,毕竟好的东西很多是外国的,还有哦,要会翻墙。对于那篇文章我其实还没看完,还在慢慢消化中,但是看到一个函数确实真的很吸引我,实现的是Converting R,G,B values to HTML hex(十六进制) notation。

PErface

javascript代码实例教程-javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)

当你看见这张照片时,你在想什么?对于文艺青年可能想放飞梦想,自由飞翔,对于二逼青年可能会想气球可不可以带我飞?(好像不太符合角色特点-_-!)。但是程序猿会想为什么计算机会显示这些颜色?确实丰富的色彩丰富我们的生活,我们要的是五彩缤纷的世界而不是只有黑白。怎么感觉在写作文啊!离题了。

description

函数式RGB颜色 计算机可以通过组合不同的红色、绿色和蓝色来创造颜色,所以红、绿、蓝就被叫做颜色分量,每个颜色分量都是8bit,取值范围为0-255十六进制RGB颜色 But the HTML colZ"https://www.2cto.COM/kf/ware/vc/" target="_blank" class="keylink">vciBzcGVjaWZpY2F0aW9uIHVzZXMgaGV4YWRlY2ltYWwgbm90YXRpb24gZm9yIGVhY2ggb2YgdGhlIGNvbXBvbmVudHMsIHNvIhroYXQgdGhleSBlYWNoIG9jY3VweSB0d28gZGlnaXRzLr7NysfLtdLyzqrKx8quwfm9+NbGo6zL+dLU08PBvc67vs3E3Mq5tcTL/LXEyKEmIzIwNTQwO7e2zqfU2jAtMjU1wcuho8v8tcQmIzI2Njg0O8q9zqojUlJHR0JCwb3V37XEwarPtQo8dGFibGUgYm9yZGVyPQ=="1"> component Value(in hex) Value(in decimal) @H_304_30@ red AA 170 Green BB 187 Black CC 204

Content

可以在Making annoying rainbows in javascript中看到它写了一个函数RGB2Color,可以实现把RGB转换成十六进制。

RGB2Color function RGB2Color(r,g,b){ return '#' + byte2Hex(r) + byte2Hex(g) + byte2Hex(b);} 交给byte2Hex函数执行,这个函数很有趣 function byte2Hex(n){ VAR nybHexString = "0123456789abcDEF"; return String(nybHexString.substr((n >> 4) & 0x0F,1)) + nybHexString.substr(n & 0x0F,1);} 叫我写这个方法,我觉得我想破脑袋都想不出来还可以这样子玩的

Summary

现在我们来分析那段代码,其实我经常在看《javascript权威指南》总是忽略掉位运算符的,今天看来我之前的习惯是错的

(n>>4)&0x0F 比如我们传来的是值为180,你用(180).toString(2)可以获得它对应的二进制为"10110100",然后你用180>>4执行后为11。所以我们用n>>4是为了获取该值对应二进制的最左边4位的值,然后再用&0x0F把它转换成16进制,而得出来的值是对于nybHexString字符串的下标的,即11对应的是B就找出来了。n&0x0F 这个可以获取n最右边的值对应的16进制,因为0x0F如果用8位表示的是0000 1111,接上面的例子如180,用二进制表示为1011 0100,因为两者是相与的,而0x0F最左边的4位全是0,而最右边4位全为1,所以我们就可以忽略掉每一个值对应的二进制的最左边的4个位,获取的是每一个值(n)对应的二进制最右边的4个位。

preferences

Making annoying rainbows in javascript

觉得可用,就经常来吧! 脚本宝典 欢迎评论哦! js脚本,巧夺天工,精雕玉琢。小宝典献丑了!

脚本宝典总结

以上是脚本宝典为你收集整理的javascript代码实例教程-javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)全部内容,希望文章能够帮你解决javascript代码实例教程-javascript把RGB指定颜色转换成十六进制颜色(Converting R,G,B values to HTML hex notation)所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。