Bộ chuyển đổi HSL sang RGB

Chuyển đổi HSL sang RGB ngay khi bạn nhập — miễn phí, tức thì, đi kèm ví dụ minh họa và bảng màu phổ biến.

Ví dụ minh họa

HSL 11, 100%, 60% = RGB 255, 87, 51

Nguyên lý chuyển đổi

  • HSL mô tả cùng một màu sắc bằng tông màu (hue, từ 0–360° trên vòng tròn màu), độ bão hòa (saturation) và độ sáng (lightness) — rất tiện lợi khi bạn muốn làm tối hoặc giảm độ bão hòa của màu bằng cách chỉ thay đổi một thành phần duy nhất.

Các màu phổ biến trong hệ HSL và RGB

Màu sắcHSLRGB
Đỏ0, 100%, 50%255, 0, 0
Cam39, 100%, 50%255, 165, 0
Vàng60, 100%, 50%255, 255, 0
Xanh lá120, 100%, 25%0, 128, 0
Xanh lục lam180, 100%, 50%0, 255, 255
Xanh dương240, 100%, 50%0, 0, 255
Tím300, 100%, 25%128, 0, 128
Hồng350, 100%, 88%255, 192, 203
Nâu0, 59%, 41%165, 42, 42
Trắng0, 0%, 100%255, 255, 255
Xám0, 0%, 50%128, 128, 128
Đen0, 0%, 0%0, 0, 0

Mọi quá trình chuyển đổi đều chạy trong trình duyệt của bạn. Không có thông tin nào bạn nhập được tải lên BroBroGo.

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

Làm cách nào để chuyển đổi HSL sang RGB?

Nhập hoặc dán giá trị HSL của bạn ở trên — giá trị RGB sẽ cập nhật ngay lập tức. Bạn cũng có thể chọn màu trực quan bằng bảng chọn màu.

Việc chuyển đổi có chính xác tuyệt đối không?

Các giá trị được làm tròn thành số nguyên, định dạng mà các công cụ thiết kế và CSS yêu cầu. Sự khác biệt này là cực kỳ nhỏ, mắt thường hoàn toàn không thể nhận ra.

Chuyển đổi màu HSL sang RGB: công cụ dành cho nhà thiết kế và lập trình viên

Trang này cho phép bạn nhập một màu được biểu diễn theo mô hình HSL (Hue, Saturation, Lightness) và nhận ngay lập tức giá trị RGB (Red, Green, Blue) tương ứng, cùng với các mã HEX, HSV, CMYK và LAB. Điểm khác biệt cốt lõi của công cụ này nằm ở chỗ nó giải quyết một nhu cầu cụ thể: chuyển đổi giữa hai không gian màu có mục đích sử dụng hoàn toàn khác nhau. HSL được xây dựng để phù hợp với cách con người lý luận về màu sắc – thay đổi độ sáng (lightness) mà vẫn giữ nguyên sắc độ (hue) – trong khi RGB là không gian làm việc thực tế của màn hình, nơi mỗi pixel phát ra ba luồng ánh sáng với cường độ từ 0 đến 255.

Không giống như các chuyển đổi từ LAB hoặc CMYK sang RGB, việc chuyển đổi từ HSL sang RGB là không mất dữ liệu. Mọi giá trị HSL hợp lệ đều ánh xạ đến một bộ ba RGB duy nhất nằm trong dải hiển thị được. Không xảy ra hiện tượng cắt gam màu (out‑of‑gamut clipping), do đó màu sắc không bị lệch khi chuyển đổi ngược lại. Công cụ hoạt động hoàn toàn trên trình duyệt của bạn; không có dữ liệu nào được tải lên máy chủ.

HSL – mô hình màu dành cho tư duy con người

HSL là viết tắt của Hue (sắc độ, tính bằng độ từ 0 đến 360), Saturation (độ bão hòa, phần trăm) và Lightness (độ sáng, phần trăm). Mô hình này được thiết kế để phản ánh trực giác của con người về màu sắc. Khi bạn điều chỉnh độ sáng của một màu, bạn không làm thay đổi bản chất của sắc độ đó – ví dụ, màu đỏ ở độ sáng 30% trông tối hơn nhưng vẫn là màu đỏ. Điều này khiến HSL trở thành lựa chọn lý tưởng để xây dựng bảng màu (palette) và chủ đề (theme) trong thiết kế giao diện.

Trong thực tế, các công cụ thiết kế như Figma, Adobe XD hay Sketch thường cho phép người dùng làm việc với thanh trượt HSL. Nhưng khi bạn cần đưa màu đó vào mã nguồn CSS, JavaScript hoặc bất kỳ ngôn ngữ lập trình nào xử lý màu sắc trên màn hình, bạn cần giá trị RGB. Màn hình máy tính không hiểu “hue 243, saturation 75%, lightness 59%” – nó chỉ hiểu ba con số từ 0 đến 255 tương ứng với cường độ phát sáng của các điểm ảnh đỏ, lục và lam.

Công cụ chuyển đổi này cho phép bạn nhập chính xác một bộ giá trị HSL, ví dụ 243, 75%, 59%, và thấy ngay RGB tương ứng là 79, 70, 229. Tất cả các trường đầu ra đều cập nhật tức thì, bao gồm HEX, RGB, HSL, HSV, CMYK và LAB.

Nguyên lý chuyển đổi HSL sang RGB: không mất dữ liệu

Chuyển đổi từ HSL sang RGB dựa trên các thuật toán chuẩn hóa, thường được mô tả trong tài liệu CSS Color Module Level 4 và các thư viện đồ họa phổ biến. Quy trình cơ bản như sau:

  1. Chuẩn hóa giá trị đầu vào: Hue được chia cho 360 để đưa về khoảng [0, 1). Saturation và Lightness được chia cho 100 để đưa về.
  2. Tính toán các thành phần màu trung gian: Dựa trên lightness và saturation, hệ thống tính ra một giá trị trung gian gọi là chroma (cường độ màu thuần). Công thức: C = (1 - |2L - 1|) × S.
  3. Xác định vùng sắc độ (hue segment): Hue được nhân với 6, lấy phần nguyên để xác định một trong sáu vùng (0-1-2-3-4-5). Mỗi vùng tương ứng với một bộ quy tắc tính giá trị RGB tạm thời (R', G', B').
  4. Thêm thành phần độ sáng (lightness matching): Giá trị m = L - C/2 được cộng vào mỗi thành phần R', G', B' để thu được RGB cuối cùng trong khoảng.
  5. Chuyển đổi sang số nguyên 0-255: Nhân mỗi giá trị với 255 và làm tròn.

Bởi vì tất cả các phép toán đều là tuyến tính và không có bước nén gam, không có thông tin nào bị mất trong quá trình chuyển đổi. Màu HSL đầu ra hoàn toàn có thể chuyển đổi ngược trở lại HSL từ RGB mà không sai lệch. Đây là điểm khác biệt quan trọng so với chuyển đổi từ CMYK sang RGB, vốn thường phải cắt bỏ các màu nằm ngoài gam màn hình.

Các giá trị màu được hỗ trợ: HSL, RGB, HEX, HSV, CMYK, LAB

Công cụ hiển thị đồng thời sáu giá trị màu khác nhau, mỗi giá trị phục vụ một mục đích riêng:

Định dạng Phạm vi Ví dụ Ghi chú
HSL Hue 0–360, Saturation 0–100%, Lightness 0–100% 243, 75%, 59% Nhập liệu chính
RGB 0–255 mỗi kênh 79, 70, 229 Dùng trong CSS, JavaScript, canvas
HEX 6 ký tự hex (RRGGBB) #4F46E5 Dùng phổ biến trong web và thiết kế
HSV Hue 0–360, Saturation 0–100%, Value 0–100% 243, 69%, 90% Tương tự HSL nhưng dùng “giá trị” thay “độ sáng”
CMYK Cyan, Magenta, Yellow, Key (0–100%) 66%, 69%, 0%, 10% Chỉ là ước tính trên màn hình
LAB L* 0–100, a* -128–127, b* -128–127 47, 44, -71 Dùng trong quản lý màu in ấn

Lưu ý quan trọng: Giá trị CMYK hiển thị là ước tính dựa trên chuyển đổi từ RGB sang CMYK thông qua một không gian màu trung gian (thường là sRGB). Do sự khác biệt về loại giấy, mực in và cấu hình máy in, giá trị này có thể không khớp chính xác với màu in thực tế. Không nên dùng trực tiếp các số CMYK này để pha màu in mà không kiểm tra lại bằng thiết bị đo màu hoặc hiệu chỉnh hồ sơ ICC.

Lỗi nhập liệu và giới hạn của CMYK trên màn hình

Công cụ này yêu cầu định dạng HSL chính xác. Nếu bạn nhập sai cú pháp, chẳng hạn như thiếu dấu phẩy, viết hsl(243, 75%, 59%) thay vì 243, 75%, 59%, hoặc nhập số nằm ngoài phạm vi, trang sẽ hiển thị thông báo lỗi:

“Enter HSL as hue 0–360 with two percentages, like 243, 75%, 59%.”

Lỗi này được thiết kế để ngăn chặn các giá trị vô nghĩa hoặc không thể chuyển đổi. Đây là vấn đề thường gặp: nhiều người dùng nhập ký tự đơn vị (dấu độ, dấu %) không đúng chỗ hoặc nhầm lẫn giữa HSL và HSLA (có thêm kênh alpha). Công cụ chỉ chấp nhận ba giá trị: số đầu là hue, hai giá trị sau có kèm dấu phần trăm.

Một giới hạn khác liên quan đến gam màu: HSL là một không gian màu phụ thuộc thiết bị (device-dependent), không có gam tuyệt đối. Nhưng vì chuyển đổi từ HSL sang RGB không gây cắt gam nên mọi giá trị đầu vào đều cho ra RGB hợp lệ. Ngược lại, khi chuyển đổi từ một không gian màu rộng hơn như LAB hoặc CMYK (dùng gam in ấn) sang RGB, nhiều màu bị cắt bỏ. Công cụ này không gặp vấn đề đó vì HSL nằm gọn trong gam sRGB.

Ứng dụng thực tế trong thiết kế web và phát triển giao diện

Có ba nhóm người dùng chính sẽ tìm thấy giá trị thực sự từ công cụ này:

Nhà thiết kế xây dựng bảng màu: Khi bạn tạo một palette màu trong HSL, thay đổi lightness từ 10% đến 90% sẽ tạo ra các biến thể cùng sắc độ. Tuy nhiên, các công cụ thiết kế thường xuất ra mã HEX hoặc RGB khi bạn sao chép màu vào clipboard. Công cụ chuyển đổi này giúp bạn kiểm tra nhanh các giá trị RGB tương ứng để đảm bảo chúng nằm trong dải tương phản cần thiết cho khả năng tiếp cận (accessibility), đặc biệt là khi tính toán tỷ lệ tương phản màu nền/chữ theo WCAG.

Lập trình viên front‑end: Khi nhận thiết kế từ Figma hoặc Sketch, bạn thường thấy màu dưới dạng HSL. Nhưng trong CSS, bạn có thể viết rgb(79, 70, 229) hoặc #4F46E5 – việc chuyển đổi thủ công rất dễ sai. Công cụ này cho kết quả chính xác ngay lập tức. Ngoài ra, nếu bạn cần xử lý màu trong JavaScript (ví dụ với Canvas API), bạn cần RGB vì ctx.fillStyle không chấp nhận HSL trực tiếp trong nhiều trình duyệt cũ.

Những người ưa thích tư duy theo cách con người: Hầu hết mọi người có thể dễ dàng hình dung “màu xanh dương hơi tối, độ bão hòa cao” hơn là “ba con số 79, 70, 229”. HSL cho phép bạn suy luận về màu sắc bằng trực giác. Sau đó, bạn chỉ cần dùng công cụ này để “dịch” sang ngôn ngữ của màn hình. Đây là cách làm việc thông minh hơn là phải nhớ bảng màu hay đoán mò giá trị RGB.

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

1. Tại sao HSL lại hữu ích hơn RGB khi tạo bảng màu? Bởi vì trong HSL, bạn có thể giữ nguyên sắc độ (hue) và chỉ thay đổi độ sáng (lightness) để tạo ra các biến thể sáng/tối của cùng một màu. RGB không cho phép điều chỉnh trực quan như vậy – thay đổi một kênh R, G hoặc B sẽ làm thay đổi cả sắc độ và độ sáng một cách khó dự đoán.

2. Công cụ có hỗ trợ kênh alpha (độ trong suốt) không? Không. Công cụ chỉ làm việc với màu không trong suốt. Nếu bạn cần chuyển đổi HSLA hoặc RGBA, bạn phải xử lý kênh alpha riêng. Nhưng việc chuyển đổi giữa HSL và RGB không ảnh hưởng đến alpha – giá trị 0–1 của alpha có thể được giữ nguyên.

3. Tại sao giá trị CMYK trên màn hình lại là ước tính? CMYK là mô hình màu in ấn dựa trên mực vật lý. Mỗi máy in, loại giấy và mực khác nhau cho ra gam màu khác nhau. Chuyển đổi từ RGB sang CMYK cần một hồ sơ ICC cụ thể. Công cụ này dùng chuyển đổi chuẩn sRGB → CMYK (theo mô hình Adobe Coated FOGRA39 thông dụng) nhưng không thể thay thế việc kiểm tra màu trên máy in thực tế.

4. Tôi có thể nhập giá trị hue dưới dạng số thập phân không? Có. Hue có thể là số thực, ví dụ 243.5, 75%, 59% – công cụ vẫn xử lý chính xác. Tuy nhiên, giá trị RGB sau đó sẽ được làm tròn đến số nguyên 0–255, vì màn hình chỉ hiển thị cường độ nguyên.

5. Có trường hợp nào HSL không thể chuyển đổi thành RGB không? Không. Mọi bộ ba HSL hợp lệ (hue 0–360, saturation 0–100%, lightness 0–100%) đều cho ra một bộ ba RGB hợp lệ. Đây là phép chuyển đổi một-một trong gam sRGB.

6. Tôi muốn tự động hóa việc chuyển đổi trong mã của mình – có công thức chuẩn không? Có. Bạn có thể tham khảo thuật toán từ CSS Color Module Level 4 hoặc dùng thư viện như color-hsl2rgb trong JavaScript. Công cụ này sử dụng chính xác các công thức đó, nhưng chạy trên trình duyệt để bạn kiểm tra nhanh mà không cần viết code.