col2rgb
Color to RGB Conversion
Rcolor to RGB (red/green/blue) conversion.
Usage
col2rgb(col, alpha = FALSE)
Arguments
- col
- vector of any of the three kinds of Rcolor specifications,
i.e., either a color name (as listed by
colors()
), a hexadecimal string of the form"#rrggbb"
or"#rrggbbaa"
(seergb
), or a positive integeri
meaningpalette()[i]
. - alpha
- logical value indicating whether the alpha channel (opacity) values should be returned.
Details
NA
(as integer or character) and "NA"
mean transparent.
Values of col
not of one of these types are coerced: real
vectors are coerced to integer and other types to character. (Prior to
R3.0.2 factors were coerced to their integer codes: in all other
cases the class is still ignored when doing the coercion.)
Zero and negative values of col
are an error.
Value
- An integer matrix with three or four (for
alpha = TRUE
) rows and number of columns the length ofcol
. Ifcol
has names these are used as the column names of the return value.
See Also
The newer, more flexible interface, convertColor()
.
Examples
library(grDevices)
col2rgb("peachpuff")
col2rgb(c(blu = "royalblue", reddish = "tomato")) # note: colnames
col2rgb(1:8) # the ones from the palette() (if the default)
col2rgb(paste0("gold", 1:4))
col2rgb("#08a0ff")
## all three kinds of color specifications:
col2rgb(c(red = "red", hex = "#abcdef"))
col2rgb(c(palette = 1:3))
##-- NON-INTRODUCTORY examples --
grC <- col2rgb(paste0("gray", 0:100))
table(print(diff(grC["red",]))) # '2' or '3': almost equidistant
## The 'named' grays are in between {"slate gray" is not gray, strictly}
col2rgb(c(g66 = "gray66", darkg = "dark gray", g67 = "gray67",
g74 = "gray74", gray = "gray", g75 = "gray75",
g82 = "gray82", light = "light gray", g83 = "gray83"))
crgb <- col2rgb(cc <- colors())
colnames(crgb) <- cc
t(crgb) # The whole table
ccodes <- c(256^(2:0) %*% crgb) # = internal codes
## How many names are 'aliases' of each other:
table(tcc <- table(ccodes))
length(uc <- unique(sort(ccodes))) # 502
## All the multiply named colors:
mult <- uc[tcc >= 2]
cl <- lapply(mult, function(m) cc[ccodes == m])
names(cl) <- apply(col2rgb(sapply(cl, function(x)x[1])),
2, function(n)paste(n, collapse = ","))
utils::str(cl)
if(require(xgobi)) { ## Look at the color cube dynamically :
tc <- t(crgb[, !duplicated(ccodes)])
table(is.gray <- tc[,1] == tc[,2] & tc[,2] == tc[,3]) # (397, 105)
xgobi(tc, color = c("gold", "gray")[1 + is.gray])
}
Community examples
Looks like there are no examples yet.