外接屏色彩發灰
兩種不同的抱怨,答案其實是同一個。「調暗之後畫面發灰」和「調了色彩之後反而更糟」,都跟伽馬表有關——而後者是一個真的很容易犯的錯誤,我們自己的程式碼也不例外。
為什麼調光會改變顏色
當面板沒有實作 DDC/CI 時,亮度只能在軟體層做:重寫顯示器的伽馬表。這是對「訊號與輸出關係」的真實改動,所以調暗後的畫面不是同一張圖的暗版——它會顯得更平、更灰。這是軟體調光固有的代價,不是某個應用的 bug。
陷阱:在你自己的改動之上再改
問題出在這裡。「把伽馬設成 2.3」最自然的寫法是:讀出目前的表、按參數重塑、寫回去。做一次沒事。做第二次時,這次調整是疊在第一次的結果上的;第三次又疊在第二次上。每一次微調都在累積上一次的偏差——這就是人們說的「顏色越調越偏,怎麼看都回不去」。
解法只有一條紀律:把曲線讀一次並留住,之後永遠從這份留存副本換算,而不是從你上一次寫進去的曲線出發。我們原始碼裡那條快取的註解寫得很直白:「面板的原始 ramp,只讀取一次,作為一切變換的基準,因此反覆調節不會累積。」 第一百次調節的結果與第一次完全相同。
關於這個基準,一句誠實的話
「只讀取一次」就是字面意思:我們在第一次接管某台顯示器時讀它的傳遞表,以此作為基準。在一台沒有其它東西在改伽馬的 Mac 上,這確實就是面板的原始曲線。但如果我們啟動時已經有另一個控制伽馬的應用在執行,那麼我們捕獲到的是那個應用的曲線,我們的換算就是相對它做的。所以我們在這裡把話說清楚,而不是讓更簡短的市場用語暗示更多。
怎麼回到你原本的狀態
一條命令丟掉我們寫入的全部內容並把顯示器交還系統:把捕獲到的曲線寫回去、清掉我們自己的狀態,於是 ColorSync 重新接管。在應用裡這是一個按鈕,操作後面板會顯示「已交回系統 ColorSync 校準」。
它不是什麼
它是觀感調整,不是計量級校色。如果你的工作依賴可測量的顏色,那麼任何伽馬表工具——包括我們——都替代不了一台色度計和一台做過設定檔的顯示器。這句話我們也寫在授權條款裡,而不是藏起來。