我正在寻找一些 function在 r可以转换 rgba颜色到十六进制,例如rgba(240, 177, 76, 0.80)
。 rgb 提供了大量功能到十六进制转换,例如plotrix::rgb.to.hex()
但不适用于 RGBA。
非常感谢任何指点。
最佳答案
此主题已讨论Convert RGBA to HEX 但是,我不知道 R 包提供了随时可用的功能。
您可以将 RGBA 转换为 RGB:
由于这取决于背景像素的颜色 ( Convert RGBA color to RGB ),因此您必须定义背景颜色。
color_RGBA
是您的 RGBA 颜色,background_RGB
是背景颜色。
例如,您可以将 col2rgb("white")
作为 background_RGB
。
rgba2rgb <- function(background_RGB, color_RGBA){
# get alpha
alpha=color_RGBA[4]
# get new color
new_col=matrix(c(
(1 - alpha) * background_RGB[1] + alpha * color_RGBA[1],
(1 - alpha) * background_RGB[2] + alpha * color_RGBA[2],
(1 - alpha) * background_RGB[3] + alpha * color_RGBA[3]),
nrow=3,ncol=1,dimnames=list(c("red","green","blue"))
)
return(new_col)
}
然后将 RGB 转换为 HEX:
rgb2hex <- function(x) rgb(x[1], x[2], x[3], maxColorValue = 255)
关于用于RGBA到HEX颜色转换的R函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60977641/