透過 MCP 連接 →

輸入計算

數學公式

Show calculation steps (1)
  1. Hue

    Hue: Hex 轉 HSL 色彩轉換器

    d = max - min; hue depends on which channel is the maximum, then multiplied by 60 degrees (a negative result wraps by +360).

廣告

結果

HSL 色彩
hsl(204, 70%, 53%)
色相 / 飽和度 / 亮度
色相 (H) 204.07°
飽和度 (S) 69.87%
亮度 (L) 53.14%
紅 (R) 52
綠 (G) 152
藍 (B) 219

什麼是 Hex 轉 HSL 色彩轉換器?

這個工具能將十六進位色碼(也就是 CSS 與設計軟體中常見的 #RRGGBB 格式)轉換成 HSL 色彩模型,也就是色相(Hue)、飽和度(Saturation)與亮度(Lightness)。相較於 hex 或 RGB,HSL 通常更符合人類直覺,因為它正好對應我們看待顏色的方式:這是什麼顏色(色相)、顏色有多鮮豔(飽和度),以及顏色偏亮還是偏暗(亮度)。它適用於任何以 RGB 為基礎的顏色,除了標準的 sRGB hex 表示法之外,不受任何國家或規範限制。

十六進位色塊轉換為 HSL 圓柱顏色模型
十六進位代碼對應於由色相、飽和度和明度定義的 HSL 顏色模型中的一個位置。

如何使用

輸入一組 hex 色碼,例如 #3498DB。開頭的 # 可加可不加,三位數的縮寫格式(例如 #0AF)也會自動展開為 #00AAFF。轉換器會回傳對應的 HSL 三組數值,並附上解碼後的紅、綠、藍各通道值(0–255)。

計算公式說明

首先將 hex 拆解成紅、綠、藍三個位元組,並各自除以 255,把數值正規化到 0–1 的範圍。設 maxmin 為這三個值中的最大與最小者。亮度就是兩者的平均:

$$L = \frac{\max + \min}{2}$$

當 max 等於 min 時(也就是灰色),飽和度為 0。否則,若 \(L > 0.5\),則 \(S = \dfrac{\max - \min}{2 - \max - \min}\),否則 \(S = \dfrac{\max - \min}{\max + \min}\)。色相則取決於哪個通道為最大值,並乘以 60 換算成角度。

$$S = \begin{cases} \dfrac{\max - \min}{2 - \max - \min}, & L > 0.5 \\[0.6em] \dfrac{\max - \min}{\max + \min}, & L \le 0.5 \end{cases}$$$$H = 60^{\circ} \times \begin{cases} \dfrac{G - B}{d} \bmod 6, & \max = R \\[0.6em] \dfrac{B - R}{d} + 2, & \max = G \\[0.6em] \dfrac{R - G}{d} + 4, & \max = B \end{cases} \qquad d = \max - \min$$
展示 RGB 通道的最大值與最小值輸入明度與飽和度公式的示意圖
明度來自最亮和最暗通道的平均值,飽和度來自兩者之間的差值。

實例演算

#3498DB 為例:\(R = 52\)、\(G = 152\)、\(B = 219\)。正規化後:\(r \approx 0.2039\)、\(g \approx 0.5961\)、\(b \approx 0.8588\)。\(\max = b = 0.8588\)、\(\min = r = 0.2039\),所以 \(L = 0.5314\)(53.14%)。由於 \(L > 0.5\),\(S = \dfrac{0.6549}{2 - 1.0627} = 0.6987\)(69.87%)。藍色為最大值,因此 \(H = 60 \times \left(4 + \dfrac{0.2039 - 0.5961}{0.6549}\right) = 60 \times 3.4011 \approx 204.07^{\circ}\)。結果為 hsl(204, 70%, 53%)。

常見問題

支援縮寫 hex 嗎?支援,像 #F0C 這樣的三位數色碼會自動展開。

HSL 數值精確嗎?色相、飽和度與亮度都以完整精度計算,僅在顯示時做四捨五入;原始數值同樣可供取用。

一定要加 # 嗎?不用,無論有沒有開頭的 #,轉換器都能正確處理。

最後更新: