Install ICC Color Profiles on Linux desktop.
編輯照片的時候會遇到色彩管理(Color Management )的問題。以廣色域照片為例,如果作業系統沒有妥善的色彩管理,那麼廣色域顯示器就無法處理sRGB以外色域的照片,導致採用DCI-P3廣色域的照片顯示錯誤的顏色。
當然,要編輯廣色域的照片,你得先確認自己的顯示器是否支援廣色域。
通常色彩管理會用到ICC色彩描述檔(ICC Profiles),附檔名為.icm。它能夠用來指定顯示器顏色,也能夠內嵌在圖片檔裡面,讓軟體正確得知該圖片使用的色域。
Linux各大發行版(Ubuntu、Fedora、Arch Linux)支援色彩管理,但是並非全域統一支援,要桌面環境加上應用程式支援度。
GNOME和KDE Plasma桌面環境支援色彩管理。
Firefox、Chromium系瀏覽器、修圖軟體GIMP、繪圖軟體Krita、照片整理程式digiKam、CUPS印表機都是支援色彩管理的。看圖軟體Gwenview也支援讀取內嵌ICC色彩描述檔的圖片。
如果軟體不支援色彩管理,那麼它會以sRGB色域顯示圖片。
那麼本文Ivon就來討論如何於Linux使用ICC。
1. 前置條件#
Linux的色彩管理支援度,首先取決於你使用的桌面環境。
撰文當下,GNOME最新版本48,KDE Plasma最新版本6.3
要使用色彩管理請使用X11協定,不要用Wayland。如何確認目前的桌面工作階段為X11還是Wayland?輸入指令echo $XDG_SESSION_TYPE
確認。
Wayland協定的色彩管理不成熟,若使用Wayland可能導致螢幕顏色錯亂。未來Wayland有望實現全域色彩管理,請看這篇2023年9月23日的新聞:Wayland Color Management Protocol Posted For Weston。但即使Wayland的新色彩管理協定草案已經送出,目前各大桌面環境僅有KDE Plasma 6採用。
順帶一提,如果你想要使用HDR功能,必須要使用Wayland協定,且桌面環境需要GNOME 48或者KDE Plasma 6以上版本。
2. 取得ICC色彩描述檔#
ICC設定檔以.icm
結尾,Linux桌面環境應該已經內建一套色彩描述檔,位於/usr/share/color/icc/
目錄。
試試使用現有ICC色彩描述檔。可以從Windows系統得到.icm檔案,資料夾位於C:\Windows\System32\spool\drivers\color
順帶一提NotebookCheck網站在寫評測的時候也會附上他們校色過的.icm檔供下載,特別適合筆電用戶參考。
如果要絕對準確度,就是在Linux下進行顯示器校色了。校色軟體DisplayCAL有Linux版,可以搭配校色器使用,藉此產生準確的ICC色彩描述檔。
3. 載入ICC色彩描述檔#
桌面環境應該有圖形界面讓你選。要手動安裝的話,用指令複製過去,ICC色彩描述檔應放到/usr/share/color/icc/
目錄:
sudo cp /home/user/N156HCE.icm /usr/share/color/icc/
Linux顯示器的ICC色彩描述檔是交由桌面環境的常駐程式載入。
比如GNOME要安裝gnome-color-manager
套件,才能在系統設定調整螢幕的ICC色彩描述檔。
KDE Plasma為kde-colord
套件,這樣子在系統設定的「色彩管理」介面就可以調整螢幕的ICC色彩描述檔。點裝置 → 選取顯示器 → 點Assign Color Profile,切換ICC色彩描述檔。
另外,KDE Plasma 6以後,Wayland工作階段也可以在系統設定 → 顯示器,選取ICC色彩描述檔。
如果Linux使用Nvidia閉源驅動,則Nvidia X Server Settings裡面可以調整色彩空間,確保螢幕顏色準確。
其他桌面環境調整請使用xcalib
工具載入ICC色彩描述檔。
如果桌面環境系統選單無法讓你挑ICC色彩描述檔,就用colormgr
指令改。colormgr隨附於colord
套件。
使用colormgr指令列出螢幕ID
colormgr get-devices
列出可用ICC設定檔ID。ID為一長串英數組合
colormgr get-profiles
再給螢幕新增ICC設定檔
colormgr device-add-profile "xrandr-Chimei Innolux Corporation" "icc-0e818279fc2a0a06ba8adb7c1b11b37d"
然後設定該ICC設定檔為預設
colormgr device-make-profile-default "xrandr-Chimei Innolux Corporation" "icc-0e818279fc2a0a06ba8adb7c1b11b37d"
4. 在GIMP使用ICC色彩描述檔#
GIMP具有讀取ICC色彩描述檔與轉換ICC色彩描述檔的功能。
以GIMP 3.0為例。
開啟GIMP,點選檔案,開啟一張照片。
如果照片內嵌的IC色彩描述檔並非sRGB,它會問你要不要轉換為sRGB,點選「維持」原本的
點選影像 → 色彩管理 → 指派色彩描述檔
這裡就能夠選取Linux磁碟中的ICC色彩描述檔了,應該能夠從
/usr/share/color/icc/
找到ICC色彩描述檔。若GIMP是用Flatpak安裝的,則系統全域安裝的ICC色彩描述檔會跑到/run/host/usr/share/color/icc/
。
也可以按「儲存色彩描述檔到檔案」,抽出圖片內嵌的ICC色彩描述檔。
- 點選檔案 → 匯出為,匯出的時候要勾選儲存色彩描述檔。
5. 附註:調整螢幕色溫、Gamma值、對比度#
GNOME系統設定裡面有「夜間模式」能夠調整色溫。
KDE的系統設定裡面也有Gamma與RGB顏色的調整選項。
如果Linux使用Nvidia閉源驅動,則Nvidia X Server Settings裡面也可以調螢幕的亮度與對比度。
Redshift工具可以調整色溫,從1000K到25000K都有,還有隨地理位置自動調整達成夜間光線的效果。
redshift -P -O 5500
xrandr工具包辦了對比度、Gamma值、亮度、RGB動態範圍的設定。
# 列出螢幕
xrandr --current
# 調整eDP-1螢幕的Gamma值與亮度
xrandr --output eDP-1 --gamma 1:1:1 --brightness 1.0
# 調整RGB動態範圍
xrandr --output eDP-1 --set "Broadcast RGB" "Full"