我有一台笔记本电脑,其原始屏幕分辨率为 2560*1440。这意味着它水平方向有 2560 个像素点,垂直方向有 1440 个像素点。
我还可以强制系统显示分辨率为 1280*720 的屏幕(与 2560*1440 相比,基本上是 1/4 像素)。这会强制系统使用 4 个原生像素来显示图片的 1 个像素。
. .
. ->
. .
[2560*1440] [1280*720]
当我将屏幕分辨率保持在 2560*1440 并将缩放比例设为 200% 时,效果类似。即,为了显示图片的每个像素,屏幕使用其 4 个原生像素。
我仍然看到两种设置之间的屏幕清晰度存在差异。请参见下面的两种设置屏幕截图。
有人能解释一下这种清晰度差异的原因吗?
答案1
看起来您指的是某些操作系统设置中的“缩放 200%”。
当您使用 1280*720 时,所有内容都会以此分辨率呈现,然后按比例放大为位图(由您的显示器)。最终图像确实由 2x2 像素块组成。
当您使用 2560*1440 分辨率并缩放至 200% 时,每个对象都会放大第一的,然后以全分辨率渲染。使用位图可能没有什么区别,但像 TrueType 字体或矢量图形这样的对象可以“平滑”缩放,它们可以单独改变每个可用像素。实际上,生成的图像不一定像第一种情况那样在屏幕上形成 2x2 像素块。
例子
让我们从低分辨率 4x4 开始:
我们绘制一个被描述为“左上角右三角形,4x4,黑色”的对象:
监视器获取上述信息位图并将其缩放到原始分辨率 8x8,因此每个原始像素变成 2x2 像素块:
现在让我们从一开始就使用 8x8 分辨率:
我们考虑一个被描述为“左上角右三角形,4x4,黑色”的对象:
但我们告诉操作系统使用 200% 缩放。操作系统重新计算对象并获取“左上角的右三角形,8x8, 黑色的”:
然后将其发送到监视器并显示。
比较:
注意,如果我们只有原始的 4x4 三角形作为位图,无论缩放是由操作系统还是显示器完成的,最终结果都会像上图左侧那样。三角形的数学描述允许操作系统将其重新计算到新的尺寸,并最终获得平滑的图像。
在现代操作系统中,许多 GUI 元素、字体等都可用作“数学描述”,可以顺利地重新计算到给定的尺寸(缩放)。一般术语是矢量图形。
答案2
除了 Kamil 的出色回答(图形和文本将以改进的分辨率绘制,因此看起来更好),MacOS 和 iOS 实际上允许开发人员根据屏幕分辨率使用不同的图稿。在缩放的显示屏上,您可以使用在低质量显示屏上无法读取的带有额外细节的图稿,并在低质量屏幕上使用细节较少的图稿。
例如,在文字处理器中,您可能有一个图标来创建编号列表。在高分辨率屏幕上,该图标包含微小的数字 1、2、3,这些数字几乎可以读懂。如果将其缩小到低分辨率屏幕,它就会变得模糊,因此对于低分辨率,使用手工设计的低分辨率图标。
答案3
您的第一幅图像有 2511x1151 像素。字体显然是以全分辨率而不是半分辨率呈现的,因此您的“200% 缩放”仅涉及渲染比例,而不是其内容(当然,除非内容仅以原始分辨率的位图形式提供)。您的图像比您预期的要好。
现在假设我们放大预渲染的内容(我可以在桌面上使用 ALT 滚动而不是 CTRL 滚动来执行此操作,但不知道在 XFCE 以外的桌面上这样做是否普遍),您可能会遇到相反的情况:预渲染的内容看起来更差比原来的规模。
在这种情况下,您可能会看到子像素渲染的效果。简而言之,红色、绿色和蓝色子像素位于略有不同的位置,子像素渲染会结合这些信息来渲染形状,这些形状比没有这些信息时渲染的形状略好。当然,当放大或打印或在具有不同颜色细节的屏幕上查看时,渲染意图的子像素关系不再有效,结果可能看起来比您想要的更糟糕。
在某种程度上,这是在具有比预期显示设备更精确的矩形像素的设备上渲染时出现的“块状”外观的变体。