2017-05-11 2 views
-1

Angenommen, ich diese Farbe in HEX-Wert (einschließlich alpha):R Hex zu RGB-Wandler

x <- "#FF2400FF"

Gibt es ein ordentliches Paket HEX-Werte in RGB-Werten in R-Format konvertieren? Oder ein einfaches bisschen Code, um das zu tun?

[#1] c("36 0 255")

Edit: Dies ist die entgegengesetzte Richtung von RGB to Hex converter Frage ist

+2

http://www.astrostatistics.psu.edu/su07/R/html/grDevices/html/col2rgb.html – loki

+3

'col2rgb' und' rgb' für das Gegenteil? – Cath

+0

loki, ist es nicht. Es ist genau das Gegenteil – juanmah

Antwort

2

Basierend auf den Kommentaren bereits gegeben , können Sie diesen Code verwenden:

x <- "#FF2400FF" 
paste(as.vector(col2rgb(x)), collapse = " ") 
#> [1] "255 36 0" 

jedoch auf Ihrem Wunsch-Ergebnis sucht, scheint es, dass Sie den Alpha-Wert als erste Hex-Nummer in Ihrem x haben - Sie müssen einen Teil erstellen:

x <- "#FF2400FF" 
paste(as.vector(col2rgb(paste0("#", substr(x, 4, 10)))), collapse = " ") 
#> [1] "36 0 255" 
0

Mit diesem Code wird HEX Farben Strings gesplittet und umgewandelt in ganzen Zahlen:

for (color in heat.colors(10)) { 
    hex_splitted_color = c(paste('0x', substr(color, 4, 5), sep = ''), 
         paste('0x', substr(color, 6, 7), sep = ''), 
         paste('0x', substr(color, 8, 9), sep = '')) 
    print(strtoi(hex_splitted_color)) 
} 
[1] 0 0 255 
[1] 36 0 255 
[1] 73 0 255 
[1] 109 0 255 
[1] 146 0 255 
[1] 182 0 255 
[1] 219 0 255 
[1] 255 0 255 
[1] 255 64 255 
[1] 255 191 255 
+1

oder einfach' col2rgb (heat.colors (10)) '... – Cath

0

Wie @Cath kommentiert, es existiert eine Funktion, das zu tun:

col2rgb(heat.colors(10)) 

     [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] 
red 255 255 255 255 255 255 255 255 255 255 
green 0 36 73 109 146 182 219 255 255 255 
blue  0 0 0 0 0 0 0 0 64 191