前言
以前开发页面的时候用到的颜色一般直接写hex或者rgb\rgba。如白色的表示可以是:
#fff或者#ffffff, rgb(255,255,255), rgba(255, 255, 255, 1)
我一般常用都是这么写,也没有研究过他们是啥关系,直到现在有个需求是导出excel的时候需要设置单元格的背景色、字体色的时候,而且规定只能是argb格式的,我一下子懵了,我前端只用过hex\rgba,argb又是啥?或者hex\rgba怎么转argb呢?
转换原理
拿白色来举例
- hex:
#fff
或者#ffffff
- rgba:
rgba(255, 255, 255, 1)
- argb:
argb(1, 255, 255, 255)
不过我们前端是不用argb的,只用rgba在这种。
一图胜千言
颜色转换.png
回到我的需求需要argb格式的时候,那么是否可以直接拿argb(1, 255, 255, 255)
呢,并不是,它要的是hex形式表示的argb,所以如果输入的是rgba(255,255,255,1)
的话还是要先转换成hex #ffffffff
,再把a
那部分挪到前面,在这里8个字母都是ff
所以看不出来。最终输出 {argb:ffffffff
}给到excel。
问题:假如hex是3位表示怎么转换成rgba?很简单,先分成3份,每份两个字母,如#ff0
-> #ffff00
。
网友评论