Kết nối qua MCP →

Nhập phép tính

Công thức

Quảng cáo

Kết quả

Mã màu Hex
#4080BF
Đỏ 64
Xanh lá 128
Xanh dương 191
RGB rgb(64, 128, 191)

Công cụ chuyển HSL sang Hex là gì?

Công cụ này chuyển một màu được biểu diễn theo mô hình HSL — Hue (sắc độ), Saturation (độ bão hòa) và Lightness (độ sáng) — sang dạng mã thập lục phân (hex) thường dùng trong CSS, phần mềm thiết kế và lập trình web. HSL rất trực quan với con người: hue chọn màu trên vòng tròn màu, saturation quyết định màu rực hay nhạt, còn lightness điều chỉnh màu tối hay sáng. Trong khi đó, mã hex (ví dụ #3F7FBF) mới là định dạng mà trình duyệt và các công cụ thực sự đọc được.

HSL color model shown as a cylinder with hue around the circumference, saturation along the radius and lightness up the vertical axis
The HSL color model: hue (angle), saturation (radius) and lightness (height).

Cách sử dụng

Bạn nhập hue từ 0 đến 360 độ, saturation từ 0 đến 100 phần trăm và lightness từ 0 đến 100 phần trăm, sau đó công cụ sẽ hiển thị ngay mã hex tương ứng, giá trị từng kênh RGB và một ô màu xem trực tiếp. Phép chuyển đổi này mang tính phổ quát, áp dụng cho mọi màu và không cần cài đặt bất kỳ phần mềm nào.

Giải thích công thức

Phép chuyển đổi trước tiên tính chroma \(C = (1 - |2L - 1|)\cdot S\), trong đó S và L là các phân số trong khoảng 0–1. Một biến phụ \(X = C\left(1 - \left|\left(\tfrac{H}{60}\bmod 2\right) - 1\right|\right)\) xử lý phần chuyển sắc giữa các màu cơ bản, còn độ lệch sáng \(m = L - \tfrac{C}{2}\) nâng kết quả lên đúng độ sáng cần có. Tùy theo hue rơi vào cung 60° nào, các kênh (R′,G′,B′) sẽ được gán từ C, X và 0. Mỗi kênh cuối cùng được tính bằng \(\text{round}((c^{\prime} + m)\cdot 255)\), và chuỗi hex chính là mã thập lục phân hai chữ số của R, G, B ghép lại với nhau.

$$\text{Hex} = \texttt{\#}\,\text{HH}_{R}\,\text{HH}_{G}\,\text{HH}_{B}$$

$$\text{where}\quad \left\{ \begin{aligned} C &= (1 - |2L - 1|)\cdot S \\ X &= C\left(1 - \left|\left(\tfrac{H}{60}\bmod 2\right) - 1\right|\right) \\ m &= L - \tfrac{C}{2} \\ (R,G,B) &= \text{round}\big((R^{\prime}+m,\,G^{\prime}+m,\,B^{\prime}+m)\cdot 255\big) \\ H &= \text{Hue},\quad S = \dfrac{\text{Sat}}{100},\quad L = \dfrac{\text{Light}}{100} \end{aligned} \right.$$

Flat process diagram showing HSL values transformed into RGB channels and then into a hex code
Conversion flow: HSL values map to intermediate C, X, m, then to RGB and finally a hex string.

Ví dụ minh họa

Với HSL(210, 50%, 50%): S = 0,5, L = 0,5, nên \(C = (1 - |0|)\cdot 0{,}5 = 0{,}5\). \(H/60 = 3{,}5\), vậy \((3{,}5 \bmod 2) = 1{,}5\) và \(X = 0{,}5\cdot(1 - |0{,}5|) = 0{,}25\). \(m = 0{,}5 - 0{,}25 = 0{,}25\). Hue 210 nằm trong cung 3 (180–240), cho ra (R′,G′,B′) = (0, X, C). Vậy \(R = \text{round}(0{,}25 \cdot 255) = 64\), \(G = \text{round}(0{,}5 \cdot 255) = 128\), \(B = \text{round}(0{,}75 \cdot 255) = 191\) → #4080BF.

Single example color swatch with its HSL, RGB and hex representations side by side
A worked example: one color shown as HSL, RGB and its resulting hex code.

Câu hỏi thường gặp

Hue có lặp vòng không? Có — hue bằng 360 chính là màu đỏ giống như 0, và công cụ sẽ tự chuẩn hóa mọi giá trị về khoảng 0–360.

Vì sao các kênh màu của tôi đôi khi lệch một đơn vị? Việc làm tròn về số nguyên gần nhất có thể khiến một kênh chênh ±1 so với những công cụ khác dùng cách cắt bỏ phần thập phân; làm tròn là lựa chọn chính xác hơn.

Có tạo được màu xám không? Có — đặt saturation về 0 với bất kỳ hue nào, cả ba kênh sẽ bằng \(\text{round}(L \cdot 255)\), tạo ra một màu xám trung tính.

Cập nhật lần cuối: