顯示屏幕上,每英寸點數(DPI)定義構成面板的每個物理單元的像素數。傳統上,顯示器每英寸輸出 96 個像素。但隨著技術的發展,各大公司的產品已經開始增加同一物理空間中的像素數,也就造成了屏幕的 DPI 達到 200 甚至更高,也就是所謂的「高分屏」。
雖然較高的像素密度有助于確保圖像更加清晰,但需要一種「顯示縮放形式」才能正確調整屏幕上的元素大小。否則,可視元素和文本將顯得非常小,以看起來非常別扭。
「Microsoft Store 應用程序」可以基于不同的顯示器來動態調整到適當的顯示比例,但是,仍然有許許多多的「桌面(Win32)應用程序」無法正確處理在「高分屏」上的縮放顯示。因此,有些應用會出現文本和圖標模糊、字體模糊,甚至出現大小都不正常或者應用界面變形等問題。
從 Windows 10 version 1903 開始,「任務管理器」新增了一個新的「DPI 感知」模式,該功能可以檢測并列出哪些桌面應用程序有縮放問題,哪些應用在高 DPI 顯示器上會出現模糊和拉伸。
使用「任務管理器」查看應用程序DPI感知
要查看您的 Windows 10 設備上支持 DPI 的應用,請使用以下步驟:
1
使用 Ctrl + Shift + ESC 快捷鍵打開「任務管理器」
2
點擊「詳細信息」選項卡——在任意標題欄上右擊——打開「選擇列」
3
勾選打開「DPI 感知」——點擊「確定」
4
查看能夠提供「DPI 感知」的應用:
了解Win10DPI技術之前,首先先來回顧下Windows XP以來采取過的DPI縮放技術。
傳統DPI縮放機制
傳統DPI縮放機制被Windows XP所采用,由開發者自行檢查字體縮放后是否存在潛在的問題。
優點:字體清晰
缺點:排版錯亂(UI元素文本框重疊、表格文字溢出、界面超越屏幕邊緣)
現代DPI縮放機制:DPI虛擬化
現代DPI縮放機制被Windows Vista/Win7/Win8/Win8.1所采用。如果DPI縮放比例不超過125%,繼續使用傳統DPI縮放機制,超過之后就開啟這個新模式。需要指出的是,125%縮放比例在多數情況并不會造成嚴重的界面錯亂,而且縮放后字體清晰。
具體來說,對于報告支持DPI自適應的程序,系統將停用DPI縮放。
對于沒有報告支持DPI自適應的程序,系統將采用如下機制:
縮放比例如果為100%的整數倍,系統采用一點對多點進行縮放。當選擇縮放比例為200%/300%/...,原有界面中1點依次對應4點/9點...。
縮放比例如果為非100%的整數倍,系統首先給應用提交虛擬分辨率,然后由系統離屏渲染軟件界面,再放大到用戶選擇的DPI級別上。
以1920*1080分辨率,縮放比例150%為例。系統首先向應用提交當前的分辨率為1280x720,獲得離屏渲染的界面以后,再使用常規的圖像插值算法進行放大。需要提醒的是,插值將不可避免的導致界面模糊,字體鋸齒等一系列問題。
優點:界面正常
缺點:界面模糊
Win10 DPI縮放機制:完全的DPI虛擬化
Win10 DPI縮放機制絕大多數部分與現代DPI縮放機制一致,唯一不同是所有DPI級別(包括125%)均采用DPI虛擬化機制,保證界面正常。
左側為Win10 DPI機制,右側為Win8.1 DPI機制
最后簡要介紹下MAC DPI縮放機制,Retina屏幕統一采用200% DPI縮放級別,實現原理和Windows沒有任何區別。唯一的不同是,MAC OS X軟件在顯示視頻和圖像時,視頻圖像區域采用100% DPI,以保證視頻和圖片的顯示質量。
如果你在Win10中調整DPI縮放后部分系統窗口字體出現模糊現象,可參考《Win10高分屏更改DPI后字體模糊?試試這個小工具》來解決。