Эта топика c уже обсуждалась Конвертировать 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)