Cách chuyển RGB sang hex
- Nhập giá trị đỏ, xanh lục và xanh lam (0–255) bằng thanh trượt hoặc ô số, hoặc dán giá trị CSS
rgb(). - Mã hex hiện ra ngay lập tức, cùng với HSL, HSV và CMYK. Đặt alpha nhỏ hơn 1 để nhận mã hex 8 chữ số có độ trong suốt.
- Sao chép mã hex, hoặc xem công thức để biết từng giá trị đã được chuyển đổi như thế nào.
Công thức chuyển RGB sang hex
Mỗi kênh RGB từ 0 đến 255 trở thành đúng hai chữ số hex. Chia giá trị cho 16: phần nguyên là chữ số thứ nhất và số dư là chữ số thứ hai, với 10–15 được viết là A–F. Ví dụ với rgb(124, 58, 237):
- Đỏ: 124 ÷ 16 = 7 dư 12 →
7C - Xanh lục: 58 ÷ 16 = 3 dư 10 →
3A - Xanh lam: 237 ÷ 16 = 14 dư 13 →
ED
Ghép lại sau dấu #, ta được #7C3AED. Luôn viết hai chữ số cho mỗi kênh: 9 thành 09, không phải 9.
Chuyển RGB sang hex trong lập trình
- JavaScript:
'#' + [r, g, b].map((v) => v.toString(16).padStart(2, '0')).join('') - Python:
'#{:02X}{:02X}{:02X}'.format(r, g, b) - Excel và Google Sheets:
="#"&DEC2HEX(R,2)&DEC2HEX(G,2)&DEC2HEX(B,2) - CSS: không cần chuyển đổi –
rgb()và mã hex có thể dùng thay thế cho nhau.
Thêm độ trong suốt (alpha)
Với mã 8 chữ số, nhân độ mờ đục (opacity, 0–1) với 255, làm tròn rồi thêm vào cuối dưới dạng hai chữ số hex: 0.5 × 255 = 127.5 → 128 → 80, nên rgba(124, 58, 237, 0.5) = #7C3AED80.
| Độ mờ đục | Hex | Độ mờ đục | Hex |
|---|---|---|---|
| 100% | FF | 50% | 80 |
| 90% | E6 | 40% | 66 |
| 80% | CC | 30% | 4D |
| 75% | BF | 25% | 40 |
| 70% | B3 | 20% | 33 |
| 60% | 99 | 10% | 1A |
Câu hỏi thường gặp
Công thức chuyển RGB sang hex là gì?
Với mỗi kênh, chữ số hex thứ nhất là phần nguyên của giá trị chia cho 16, chữ số thứ hai là số dư, với 10–15 được viết là A–F. Ghép ba cặp lại sau dấu #: rgb(255, 165, 0) → FF, A5, 00 → #FFA500.
Vì sao mỗi kênh phải có hai chữ số hex?
Mã màu hex được đọc theo từng cặp cố định. rgb(0, 128, 9) phải được viết là #008009; nếu bỏ các số 0 ở đầu, các cặp sẽ bị lệch và cho ra một màu khác hoặc mã không hợp lệ.
Mã màu hex có lưu được độ trong suốt không?
Có. Các trình duyệt hiện đại chấp nhận mã 8 chữ số #RRGGBBAA, trong đó cặp cuối là giá trị alpha từ 00 (trong suốt hoàn toàn) đến FF (đục hoàn toàn). rgba(124, 58, 237, 0.5) trở thành #7C3AED80.
Chuyển RGB sang hex có chính xác không?
Có, với các giá trị RGB nguyên: mỗi số từ 0 đến 255 có đúng một dạng hex hai chữ số, nên khi chuyển ngược lại sẽ được đúng các giá trị ban đầu. Chỉ có alpha là được làm tròn đến mức gần nhất trong 256 mức.