CMYK 轉 RGB 的轉換使用一套簡單、與裝置無關的公式,將四個印刷油墨百分比對應到螢幕可以顯示的 8 位元紅、綠、藍通道上。就每個顯示通道而言,對應的油墨——紅色用青色、綠色用品紅色、藍色用黃色——會與黑色通道結合、反相、限制在 100% 以內,然後縮放至 0–255,這是依照 W3C CSS Color 規範中發布的簡易後備演算法。結果快速、可預測,對於介面模型、概略的色票比較,或任何需要快速掌握未經色彩描述檔處理過的 CMYK 配方在 sRGB 風格螢幕上可能呈現效果的場合都很實用。代價在於這套轉換被明確標示為近似值:真實的 CMYK 與特定的印刷機、油墨組、紙張、網點擴大、渲染意圖及 ICC 色彩描述檔綁定,因此兩部生產設備即使使用相同的油墨配方,也可能產生出肉眼可見的不同色彩。一個在瀏覽器中執行的 CMYK 轉 RGB 工具會在你的裝置上跑同樣的簡易數學運算,讓你以 8 位元 RGB 與十六進位的方式預覽未經校色的油墨百分比,完全不必上傳任何色彩值。

用白話說明「CMYK 轉 RGB」的含義
CMYK 以四個百分比來描述色彩——青色、品紅色、黃色與黑色(鍵色)——這些是商業印刷機在紙張上疊印的油墨。RGB 則以三種光的強度——紅、綠、藍——來描述螢幕所發出的色彩。這兩套系統描述的是同一段可見光譜,但物理上正好相反:CMYK 是減色,仰賴油墨反射的光;RGB 是加色,仰賴像素發出的光。因此「CMYK 轉 RGB」並不是一對一的翻譯,而是把一組四個數字的油墨配方,盡可能地對應到一組三個數字的光配方,以便未經校色的 sRGB 螢幕能夠呈現。
當設計師、開發者或印刷買手要求 CMYK 轉 RGB 時,他們通常想要的是以下兩種情況之一:把未經色彩描述檔處理過的油墨配方快速預覽到螢幕上以放入模型,或是為了生產而進行精準的轉換。簡易的瀏覽器工具可以很好地處理第一種用途,因為數學運算是確定性的,結果也是可預測的;但它無法處理第二種用途,因為生產等級的色彩匹配需要 ICC 色彩描述檔與經過校色的工作流程。弄清楚自己處於哪一種情境,是信任結果的第一步。
轉換背後的簡易公式
W3C CSS Color 規範發布了一套簡易的裝置 CMYK 後備機制,讓瀏覽器不必載入色彩描述檔就能呈現 CMYK 色彩值。每個顯示通道的計算是將其對應的互補油墨與黑色通道結合、反相,然後把累計油墨限制在 100% 以內:
R = 255 × (1 − min(1, C × (1 − K) + K)) G = 255 × (1 − min(1, M × (1 − K) + K)) B = 255 × (1 − min(1, Y × (1 − K) + K))
百分比會在公式執行前先正規化到 0–1,得到的 0–1 值會乘以 255,並採用四捨六入五成雙的進位方式序列化,以便數學結果與 W3C 的 firebrick 參考範例一致。min(1, …) 這個包裹層負責把累計油墨限制在 100% 以內,例如:一個只含黑色的配方會在每個顯示通道都產生零,而非出現負值或溢位。(1 − K) 這個乘數會在疊上黑色之後,依剩餘的「白色餘裕」來縮放彩色油墨,這正好對應印刷機分階段減光的過程。你可以在 W3C 裝置 CMYK 規範 中閱讀完整的推導過程。
要看這個公式實際運作,請拿配方 (100, 0, 100, 0)——全青、無品紅、全黃、無黑——代入公式:
R = 255 × (1 − min(1, 1.0 × 1 + 0)) = 255 × 0 = 0 G = 255 × (1 − min(1, 0 × 1 + 0)) = 255 × 1 = 255 B = 255 × (1 − min(1, 1.0 × 1 + 0)) = 255 × 0 = 0
簡易演算法的輸出是 RGB (0, 255, 0),也就是十六進位的 #00FF00。青色油墨會吸收紅光,黃色油墨會吸收藍光,而沒有品紅來吸收綠光,結果就是純粹的螢幕綠——這正是你在紙上疊印青色與黃色所預期的結果。同樣的邏輯也適用於推敲其他任何配方:每一種彩色油墨都會減去其對應的互補通道,而黑色則會同時把三個通道都往下拉。
這個近似法能正確處理的部分
由於公式是封閉式且確定性的,某些廣為人知的 CMYK 端點會對應到你預期中的螢幕色彩。下表列出六組簡易 RGB 輸出穩定且可重現的組合,這些也是 CMYK 轉 RGB 工具在不查詢任何色彩描述檔的情況下能重現的結果。它們是你可以用來對任何公式實作進行健全性檢查的標準參考輸入,正好就是 W3C firebrick 範例與工具主要端點測試案例所要驗證的內容。
| CMYK (C, M, Y, K) | 簡易 RGB | 代表的意義 |
|---|---|---|
| 0, 0, 0, 0 | 255, 255, 255 | 無油墨——紙張白 |
| 100, 0, 0, 0 | 0, 255, 255 | 全青色油墨 |
| 0, 100, 0, 0 | 255, 0, 255 | 全品紅色油墨 |
| 0, 0, 100, 0 | 255, 255, 0 | 全黃色油墨 |
| 0, 100, 100, 0 | 255, 0, 0 | 品紅 + 黃——紅 |
| 0, 0, 0, 100 | 0, 0, 0 | 全黑色油墨 |
這些可預測的端點正是簡易方法在粗略色票工作中真正有用的原因。設計師想驗證「全品紅加黃色、不含青色或黑色會產生紅色」這個直覺時,可以直接在工具中驗證,而不必建立色彩管理工作流程。實作中也針對主要端點以外的混合通道,另外提供了獨立的測試案例,這就是為什麼除了上述教科書式的案例之外,你也能信賴 (40, 80, 20, 10) 這類配方的數學運算結果。
為什麼結果仍然只是近似值
真實的 CMYK 並不是一個固定的色彩空間——它是一組與裝置相關的空間集合,其外觀會受到印刷機、油墨組、紙張材質、網點擴大、渲染意圖,以及實際生產裝置所內嵌 ICC 色彩描述檔的影響。兩部印刷機使用相同的 CMYK 配方,可能印出肉眼可見不同的樣張;同一部印刷機換了紙張,也可能印出肉眼可見不同的樣張;即便是同一部印刷機搭配同一種紙張,只要改變渲染意圖,色彩也可能產生可感知的偏移。簡易公式完全沒把這些變因納入考量,因此得到的 RGB 最好被視為一個起點,而不是一份契約。
具備色彩描述檔感知能力的軟體會在來源 CMYK 上附加一個 ICC 色彩描述檔,在目標 RGB 上附加另一個 ICC 色彩描述檔,然後透過色彩描述檔連接空間 (PCS) 進行色彩轉換。例如 Adobe 的應用程式在轉換時,會考慮特定的 CMYK 與 RGB 色彩空間、渲染意圖、油墨以及輸出裝置。一個沒有載入任何色彩描述檔的瀏覽器工具,所產生的數值勢必會與經過校色工作流程所得到的結果有所出入,有時差幾個 RGB 級數,有時在高飽和或接近黑色的區域則差距更大。這就是為什麼這個結果在整份 W3C 規範中都被刻意標示為近似值。
如何在瀏覽器中將 CMYK 轉換為 RGB
- 在任何現代瀏覽器中開啟 CMYK 轉 RGB 工具。
- 調整青色、品紅色、黃色與黑色的滑桿,或直接輸入百分比,範圍為 0 到 100。
- 在同一個畫面上讀取即時的 8 位元紅、綠、藍通道值、六位數十六進位值,以及視覺色塊。
- 將十六進位碼或 RGB 三元組複製到你的介面模型、色票或前端樣式表中。
- 保留原始的 CMYK 數值,以便日後與印刷廠溝通時,印刷廠會需要它們以及正確的輸出色彩描述檔。
轉換與預覽都在本機進行——不會將任何色彩值傳送到伺服器,因此你可以放心地用機密配方反覆測試,而無須擔心客戶作品外洩。由於你移動滑桿時頁面會立即更新,因此這是並列比較多種油墨組合、快速找出品牌印刷規範與螢幕模型之間明顯落差的好方法。請把結果當作對模型的一項健全性檢查,而非印刷目標。
什麼時候你需要改用具備色彩描述檔感知能力的軟體
簡易的瀏覽器預覽適合用於早期探索、色票粗稿與快速模型,但一旦色彩精準度在商業上至關重要,它就不再合適。印刷打樣、合約色彩目標、包裝刀版,以及品牌色彩再現,全都需要 ICC 色彩描述檔、經過校色的顯示器,以及經印刷買手核可的實體打樣。在這些情境下,請保留原始的 CMYK 數值、向印刷廠索取正確的輸出色彩描述檔,並搭配經校色的螢幕與受控的看色燈箱,使用具備色彩描述檔感知能力的軟體。本工具絕不能當作印刷打樣,也不能用來取代經過校色的工作流程。
若想更深入了解在任何特定印刷專案中,使用 CMYK 與 RGB 各自有何取捨,CMYK 與 RGB 印刷工作流程指南 會逐一說明每種模型何時是較安全的預設選項。如果你需要反方向轉換——把螢幕上的 RGB 色彩轉成 CMYK 油墨百分比——對應的 RGB 轉 CMYK 轉換器 會在同一個瀏覽器中執行反向數學運算,完全不必上傳你的數值。
如果你正在權衡各種選項,將十六進位轉換為 RGB 通道位元組與 Alpha 對此有詳細說明。