🏪 小工具便利店

🎨 顏色轉換器

HEX、RGB、HSL 色碼互相轉換,選一個顏色,三種格式同步更新,一鍵複製。

廣告・橫幅 728×90
廣告・大型矩形 336×280

📖 使用說明

  1. 選一個顏色:直接點「色彩選取器」用滑鼠挑色,或在下方 HEX、RGB、HSL 任一欄位輸入你已經知道的色碼。
  2. 三種格式會即時同步更新,不用按任何按鈕——改動其中一欄,其他欄位跟下方色塊預覽都會馬上跟著換算過去。
  3. HEX 欄位可直接貼上色碼,支援 6 碼(例如 #4F46E5)或 3 碼縮寫(例如 #4F6),格式不對時畫面不會更新。
  4. RGB 欄位分別輸入 R、G、B(0–255 的整數);HSL 欄位輸入色相 H(0–360)、飽和度 S 與明度 L(皆為 0–100 的百分比)。
  5. 每個格式輸入框旁都有「複製」按鈕,按一下就把該格式的完整字串(例如 rgb(79, 70, 229))複製到剪貼簿,可直接貼到設計軟體或程式碼裡使用。
小提醒:按「複製」不需要自己先選取文字,工具會自動選取整個欄位內容並複製;如果 HEX 欄位貼上後畫面沒反應,通常是多了空格或位數不對(不是 3 碼就是 6 碼的十六進位),檢查一下格式即可。

📖 深入了解:HEX、RGB、HSL 到底是什麼

三種格式其實是同一個顏色的三種數學表達方式

HEX、RGB、HSL 描述的是同一個顏色,差別只在「用什麼座標系統」來記錄。RGB 是最直接的方式,用紅(R)、綠(G)、藍(B)三個 0–255 的整數,代表螢幕上這三種色光各自的強度混合出來的結果——這是螢幕顯示的物理基礎,所有數位顏色最終都會被轉成 RGB 才能點亮螢幕上的像素。HEX 只是把 RGB 的三個數字換成十六進位表示,方便寫進程式碼或設計檔案裡:一組 6 碼的 HEX 值,前兩碼是 R、中間兩碼是 G、後兩碼是 B,本質上跟 RGB 是同一組資料,只是進位制不同。HSL 則是換了一種更貼近人類直覺的思考方式,用色相 H(Hue,0–360 度,決定是紅色還是藍色還是綠色)、飽和度 S(Saturation,顏色的鮮豔程度)、明度 L(Lightness,顏色的明暗程度)三個維度來描述,而不是「紅光加多少、綠光加多少」。

換算的數學邏輯:為什麼要繞這一圈

從 RGB 換成 HSL,程式要先把 R、G、B 除以 255 換算成 0–1 的比例,取三者的最大值與最小值,明度 L 就是最大值與最小值的平均;飽和度 S 由最大值與最小值的差距決定(差距越大代表越鮮豔);色相 H 則要看是哪個顏色分量最大,再用一個分段公式算出角度——這也是本工具 rgbToHsl() 函式實際在做的事。反過來從 HSL 換回 RGB,則要用色相角度配合一個叫 hue2rgb 的輔助函式,分段計算出三個顏色分量各自該混多少。這一整套換算是十六世紀色彩理論沒有、但電腦圖學裡很成熟的數學模型,重點只有一個:三種格式互相之間都可以「無損」精確互轉,沒有哪一種比較準,純粹是給人看的方便程度不同。

設計師實務上什麼時候用哪一種

寫網頁 CSS 或跟工程師溝通色碼時,HEX 最常見,因為短、好複製貼上,例如 #4F46E5 就是一組完整的顏色資訊,設計軟體(Figma、Photoshop)的色票欄位預設也常是 HEX。需要對顏色做「微調」時,HSL 反而更好用:想要同一色系但更亮或更暗的版本,只要固定 H 和 S,改 L 就好,不需要重新調三個 RGB 數值去湊出視覺上「同色系但變亮」的效果;同樣地,想要飽和度低一點的莫蘭迪色系,直接降 S 就好。RGB 則常見於程式裡需要對顏色做數值運算的場合,例如做透明度疊加、色彩漸層插值,因為它是最原始的線性數值。

實際換算範例

以工具預設的 #4F46E5(一種靛藍色)為例:拆成 HEX 三組兩碼是 4F、46、E5,換算成十進位就是 R=79、G=70、B=229,也就是 rgb(79, 70, 229)。再往下換算成 HSL:三個比例值中 B 最大、G 最小,算出色相落在藍紫色區間,結果是 hsl(244, 75%, 59%)——色相 244 度落在藍到紫之間、飽和度 75% 偏鮮豔、明度 59% 屬於中等亮度,跟肉眼看到的靛藍色是吻合的。你可以直接在上面的工具輸入 #4F46E5 驗證這個結果。

❓ 常見問題

三種格式換算出來的顏色會有誤差嗎?

正常情況下不會。RGB、HEX、HSL 之間是精確的數學轉換公式,不是估算,同一個顏色來回轉換多次結果都會一致。唯一可能出現的小誤差是四捨五入:例如 HSL 的角度或百分比在轉回 RGB 時會被四捨五入成整數,理論上有極小機率造成 RGB 值正負 1 的偏差,但肉眼完全看不出差別。

為什麼 HEX 欄位貼上色碼後畫面沒反應?

這個工具的 HEX 檢查邏輯只接受標準的 3 碼或 6 碼十六進位字元(可以帶或不帶 # 開頭),如果貼上的內容多了空格、換行、或是像 rgba() 這種其他格式的字串,就不會觸發更新。把貼上的內容清理成純粹的色碼(例如 4F46E5#4F46E5)就能正常運作。

這個顏色轉換器會把我輸入的顏色資料傳到伺服器嗎?

不會。所有換算都是純 JavaScript 在你的瀏覽器裡即時計算完成,頁面本身沒有任何把顏色資料送出去的程式碼,重新整理頁面資料就會消失,適合處理內部設計稿或還沒公開的品牌色彩。

HSL 的飽和度、明度跟一般說的「彩度」「明度」是同一件事嗎?

是相近但要小心混用的概念。HSL 的 S 和 L 是電腦圖學裡標準化的數學定義,跟色彩學或印刷業講的 HSV、Lab 色彩空間裡的彩度、明度算法略有不同,數值不能直接互換使用,但作為「調整同色系深淺、鮮豔度」的直覺工具已經非常夠用。

三碼縮寫的 HEX(例如 #4F6)跟六碼有什麼差別?

3 碼縮寫是把每個顏色分量的兩碼重複一次展開成 6 碼,例如 #4F6 會被工具展開成 #44FF66,而不是 #4F0F60。這是 CSS 規範的簡寫規則,只能表示每個色版兩碼相同的顏色(總共 16×16×16 種),沒辦法用 3 碼縮寫表示所有 6 碼能表示的顏色。

廣告・橫幅 728×90