RGB顏色與16進位制顏色的換算方法

jia635發表於2014-05-03

有時候我們看到一些比較好的顏色也想著用到自己的應用中,但往往會設計到RGB與HEX值的轉換,網上搜到一篇分享給大家。

網頁中表示顏色的常見方法有:
1.Color Name(顏色名稱) 用顏色名稱來指定顏色,這種方法簡潔直觀,一看就知道是什麼顏色,但最大的缺點是顏色的名稱太少,不能有效的表示一些較豐富的顏色
2.RGB(RGB記法)
3.HEX(十六進位制記法)
RGB記法和十六進位制記法都能很好的表示出一些較為豐富的顏色,但是我們用到16進位制的比較多,語法為#RRGGBB,下面說下我剛研究出來的轉換方法:
我們都知道
RGB記法rgb(255,255,255)=十六進位制記法#FFFFFF,都表示白色
RGB記法rgb(0,0,0)=十六進位制記法#000000,都表示黑色
那麼RGB記法rgb(100,150,245)=十六進位制記法#??????
RGB的取值都是0~255,HEX的取值為0123456789ABCDEF這16個字元,下面看看RGB-HEX對照表

RGB HEX
0 00
1 01
2 02
3 03
4 04
5 05
6 06
7 07
8 08
9 09
10 0A
11 0B
12 0C
13 0D
14 0E
15 0F
16 10
17 11
18 12
19 13
20 14
21 15
22 16
23 17
24 18
25 19
26 1A
27 1B
28 1C
29 1D
30 1E
31 1F
32 20
33 21
34 22
35 23
36 24
37 25
38 26
39 27
40 28
41 29
42 2A
43 2B
44 2C
45 2D
46 2E
47 2F
48 30
49 31
50 32
51 33
52 34
53 35
54 36
55 37
56 38
57 39
58 3A
59 3B
60 3C
61 3D
62 3E
63 3F
64 40
65 41
66 42
67 43
68 44
69 45
70 46
71 47
72 48
73 49
74 4A
75 4B
76 4C
77 4D
78 4E
79 4F
80 50
81 51
82 52
83 53
84 54
85 55
86 56
87 57
88 58
89 59
90 5A
91 5B
92 5C
93 5D
94 5E
95 5F
96 60
97 61
98 62
99 63
100 64
101 65
102 66
103 67
104 68
105 69
106 6A
107 6B
108 6C
109 6D
110 6E
111 6F
112 70
113 71
114 72
115 73
116 74
117 75
118 76
119 77
120 78
121 79
122 7A
123 7B
124 7C
125 7D
126 7E
127 7F
128 80
129 81
130 82
131 83
132 84
133 85
134 86
135 87
136 88
137 89
138 8A
139 8B
140 8C
141 8D
142 8E
143 8F
144 90
145 91
146 92
147 93
148 94
149 95
150 96
151 97
152 98
153 99
154 9A
155 9B
156 9C
157 9D
158 9E
159 9F
160 A0
161 A1
162 A2
163 A3
164 A4
165 A5
166 A6
167 A7
168 A8
169 A9
170 AA
171 AB
172 AC
173 AD
174 AE
175 AF
176 B0
177 B1
178 B2
179 B3
180 B4
181 B5
182 B6
183 B7
184 B8
185 B9
186 BA
187 BB
188 BC
189 BD
190 BE
191 BF
192 C0
193 C1
194 C2
195 C3
196 C4
197 C5
198 C6
199 C7
200 C8
201 C9
202 CA
203 CB
204 CC
205 CD
206 CE
207 CF
208 D0
209 D1
210 D2
211 D3
212 D4
213 D5
214 D6
215 D7
216 D8
217 D9
218 DA
219 DB
220 DC
221 DD
222 DE
223 DF
224 E0
225 E1
226 E2
227 E3
228 E4
229 E5
230 E6
231 E7
232 E8
233 E9
234 EA
235 EB
236 EC
237 ED
238 EE
239 EF
240 F0
241 F1
242 F2
243 F3
244 F4
245 F5
246 F6
247 F7
248 F8
249 F9
250 FA
251 FB
252 FC
253 FD
254 FE
255 FF

通過這張表我們可以發現rgb中的0對應HEX的00,1對應01……9對應09
10則對應0A,11對應0B……15對應0F
16對應了10
這裡總共17對,除去一對特殊的0對應00,剩下的16對
大家都應該發現規律了吧,rgb的數值是16乘以HEX的第一位加上HEX的第二位,數字10一下的RGB和HEX都是相同的,不同的是HEX是兩位數,在前面補0就可以了,10對應A,11對應B,12對應C,13對應D,14對應E,15對應F,下面通過例子來說明RGB到HEX的換算辦法
例1:rgb(11,111,222)=#??????
11÷16=0餘11   11對應B  前面補0  那麼HEX的資料為0B
111÷16=6餘15  15對應F   那麼HEX的資料為6F
222÷16=13餘14  13對應D  14對應E   那麼HEX的資料為DE
合起來HEX的資料就為#0B6FDE
 
例2:rgb(0,16,255)=#??????
0直接對應00
16÷16=1餘0  則HEX的資料為10
255÷16=15餘15  15對應F  則HEX的資料為FF
合起來HEX的資料就為#0010FF
HEX轉換RGB不用說了吧,倒過來就行了


相關文章