2017-05-11 5 views
-1

Iは、(アルファを含む)HEX値でこの色があると仮定:R六角

x <- "#FF2400FF"

はRでRGB値にHEX値を変換するニートパッケージはありますか?それを行うための単純なコードですか?

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

編集:これは、このコードでRGB to Hex converter質問

+2

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

+3

'col2rgb'と' rgb'? – Cath

+0

ロキ、そうではありません。それはちょうど反対の方法です – juanmah

答えて

2

すでに与えられたコメントに基づいて、このコードを使用することができます:

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

しかし、あなたの要求された結果を見て、あなたがあなたのxで最初進数としてアルファ値を持っているようだ - そう、あなたが部分文字列を作成する必要があります。

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

の反対の方法で、HEX色の文字列が分割さと整数に変換されます。

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

または単に' col2rgb(heat.colors(10)) '...です – Cath

0

@Cathはコメントとして、それが存在しますそれを行うための機能:?反対のための

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