首页 > 解决方案 > RGBA到HEX颜色转换的R函数

问题描述

我正在寻找,它可以将颜色转换为 Hex,例如。到 Hex 转换有很多可用的功能,例如但不适用于 RGBA。rgba(240, 177, 76, 0.80)plotrix::rgb.to.hex()

真的很感激任何指针。

标签: rhexrgbrgba

解决方案


已经讨论了这个主题将 RGBA 转换为 HEX 但是,我不知道 R 包,它提供了一个现成的功能。

您可以将 RGBA 转换为 RGB:

由于这取决于背景像素的颜色(将 RGBA 颜色转换为 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)

推荐阅读