屏幕分辨率和 DPI

屏幕分辨率和 DPI

我对屏幕分辨率和 DPI 的工作原理有点困惑。在我看来,对于给定的显示器,一旦您设置了屏幕分辨率,dpi 也应该是固定的。但是,xrandr 允许您单独指定每个。而且它们似乎都有不同的效果。例如,降低我的屏幕分辨率似乎会使我的 polybar 变大,但它不会改变我的 urxvt 实例中的文本大小,即使在启动新的 urxvt 实例后也是如此。更改 DPI。虽然对 polybar 没有影响,但会调整我的 urxvt(以及 emacs 和其他一些东西)的文本大小。所以我猜屏幕分辨率和 DPI 之间有什么区别?为什么设置一个不会修复另一个?哪种设置会影响哪些程序?

谢谢

答案1

屏幕分辨率告诉您屏幕上有多少个像素。

DPI(垂直和水平)告诉您一英寸内有多少个像素。

他们一起告诉你身体的屏幕尺寸。

了解了屏幕的物理尺寸,您就可以做出明智的选择,确定需要什么尺寸的文本才能“可读”。

因此,对于 27 英寸显示器上的 4K 分辨率,您需要比 1920x1080 分辨率更大的字体大小才能保持相同的可读性。

并非所有屏幕元素都与 DPI 直接相关,因此您会看到字体大小发生变化,而其他元素不一定会遵循或尊重 DPI 变化。

系统哪些部分尊重 DPI 取决于软件的编写方式和所有部分如何组合在一起。

但是,您可以对 DPI 进行欺骗。您可以让计算机认为屏幕比实际大得多或小得多。这样,您可以将文本大小更改为您想要的大小,同时仍保持 DPI 感知能力和元素的智能缩放。理论上不仅仅是字体大小的变化,而是每个 DPI 感知元素的变化。整个屏幕可以同步变化。

如果没有 DPI 来指导如何绘制滚动条、字体、线条和其他东西,您将不得不诉诸“强力”缩放元素。对于 4k,您可以只需将每个元素的维度乘以 2,但它看起来很糟糕,而且您还不如一开始就使用较低分辨率的屏幕。

通过使用 DPI 感知元素,您可以拥有以下元素:百分比区域,并使用屏幕原始分辨率中的真实线条干净地绘制,而不是以较低或较高的分辨率绘制,然后由硬件或软件任意缩放。

这就是 DPI 为您提供的功能,智能缩放屏幕元素,无需强力缩放。

其结果是线条更清晰,更好地利用实际分辨率,以及整体上更智能地利用屏幕空间。

相关内容