在 R 中转换 RGB 和 HEX 中的 Lab 颜色值
Convert Lab colour values in RGB and HEX in R
使用 R:
可以轻松地将 RGB
值转换为 HEX
值
x <- c("165 239 210", "111 45 93")
sapply(strsplit(x, " "), function(x)
rgb(x[1], x[2], x[3], maxColorValue=255))
#[1] "#A5EFD2" "#6F2D5D"
如何将 CIELab 值转换为 RGB 和 HEX?
x <- c("20 0 0", "50 0 0")
[...code...]
#[1] "#303030" "#777777"
这是使用 library(colorspace)
的一种方法
library(colorspace)
z <- c("20 0 0", "50 0 0")
b <- do.call(rbind, lapply(strsplit(z, split = " "), as.numeric))
b <- LAB(b)
as(b, "RGB")
#output:
R G B
[1,] 0.02989077 0.02989025 0.02989294
[2,] 0.18418803 0.18418480 0.18420138
它不能直接转换为 HEX,但它可以转换为:RGB、XYZ、HSV、HLS、LAB、polarLAB、LUV、polarLUV。
使用 tidyverse
样式和 convertColor
函数。
convert_lab2rgb <- function(x){
x %>%
unlist() %>%
convertColor(from='Lab', to='sRGB') %>%
as.vector()
}
convert_rgb2hex <- function(x){
x %>%
unlist() %>%
`*`(255) %>%
round() %>%
as.hexmode() %>%
paste(collapse='') %>%
paste0('#', ., collapse='')
}
c("20 0 0", "50 0 0") %>%
map(~ str_split(., pattern=' ')[[1]]) %>%
map(as.numeric) %>%
map(convert_lab2rgb) %>%
map(convert_rgb2hex)
## #303030'
## #777777'
使用 R:
可以轻松地将RGB
值转换为 HEX
值
x <- c("165 239 210", "111 45 93")
sapply(strsplit(x, " "), function(x)
rgb(x[1], x[2], x[3], maxColorValue=255))
#[1] "#A5EFD2" "#6F2D5D"
如何将 CIELab 值转换为 RGB 和 HEX?
x <- c("20 0 0", "50 0 0")
[...code...]
#[1] "#303030" "#777777"
这是使用 library(colorspace)
library(colorspace)
z <- c("20 0 0", "50 0 0")
b <- do.call(rbind, lapply(strsplit(z, split = " "), as.numeric))
b <- LAB(b)
as(b, "RGB")
#output:
R G B
[1,] 0.02989077 0.02989025 0.02989294
[2,] 0.18418803 0.18418480 0.18420138
它不能直接转换为 HEX,但它可以转换为:RGB、XYZ、HSV、HLS、LAB、polarLAB、LUV、polarLUV。
使用 tidyverse
样式和 convertColor
函数。
convert_lab2rgb <- function(x){
x %>%
unlist() %>%
convertColor(from='Lab', to='sRGB') %>%
as.vector()
}
convert_rgb2hex <- function(x){
x %>%
unlist() %>%
`*`(255) %>%
round() %>%
as.hexmode() %>%
paste(collapse='') %>%
paste0('#', ., collapse='')
}
c("20 0 0", "50 0 0") %>%
map(~ str_split(., pattern=' ')[[1]]) %>%
map(as.numeric) %>%
map(convert_lab2rgb) %>%
map(convert_rgb2hex)
## #303030'
## #777777'