用于RGBA到HEX颜色转换的R函数

标签 r hex rgb rgba

我正在寻找一些 可以转换 颜色到十六进制,例如rgba(240, 177, 76, 0.80) 提供了大量功能到十六进制转换,例如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/

相关文章:

r - httr GET SSL 连接错误

r - 为使用 map() 创建的 ggplots 添加标题

C++ std::cout 显示 64

c++ - 想要从图像中获取绿色 RGB channel 时出错

根据 R 中的条件删除数据框列

R:将向量插入字符串的每个其他字符

python - 如何运行文本文件中包含的可执行文件(exe 的十六进制)

指向 union 存储的字符指针

java - 更高效的 RGB 到 ARGB 转换

css - 除了 'opacity' 之外,RGB 和 RGBA 之间有什么区别