具有十六进制颜色并返回具有RGB和可能的alpha通道值的命名向量的函数

问题描述 投票:0回答:1

例如,该功能应如下所示:

# colors with no transparency
hex_values("435690")

## red  green  blue
## "43" "56"   "90"

如果提供的十六进制颜色具有alpha通道,则该功能应像这样工作:

# colors with transparency
hex_values("435690FF")

## red  green  blue  alpha
## "43" "56"   "90"  "FF"

我正在使用正则表达式和for循环来编写我的函数,但是仍然遇到很多问题。

任何建议/帮助都值得赞赏!

r regex hex rgb
1个回答
1
投票

您可以使用col2rgb()并转置结果:

t(col2rgb("#435690FF", alpha = TRUE))

     red green blue alpha
[1,]  67    86  144   255

或正如r2evans所指出的,要还原为十六进制值,请在as.hexmode()中将其包装。

t(as.hexmode(col2rgb("#435690FF", alpha = TRUE)))

     red  green blue alpha
[1,] "43" "56"  "90" "ff" 
© www.soinside.com 2019 - 2024. All rights reserved.