写了一个 go-hexcolor
package,用于把 HEX 颜色代码转换为 color.NRGBA。支持三位、六位和八位的 HEX 颜色代码。有没有 # 都没关系。
// s 是 bytes
// 只看 RGB 的部分
// rToB 把 rune 转换成 uint8
// 通过和 'a' 'A' 以及 '0' 相减
if len(s) == 6 || len(s) == 8 {
clr.R = (rToB(s[0]) << 4) + rToB(s[1])
clr.G = (rToB(s[2]) << 4) + rToB(s[3])
clr.B = (rToB(s[4]) << 4) + rToB(s[5])
return
}
if len(s) == 3 || len(s) == 4 {
clr.R = rToB(s[0]) * 17
clr.G = rToB(s[1]) * 17
clr.B = rToB(s[2]) * 17
return
}