是什么原因导致同一网页的文字在不同分辨率的屏幕上显示不同?

是什么原因导致同一网页的文字在不同分辨率的屏幕上显示不同?

我正在编写使用图像检测算法的自动化脚本。我最近注意到,同一页面上的文本在不同的屏幕上看起来不同(至少在最大化时)(第一个屏幕是 1280x1024,第二个屏幕是 1440x990)。

例如,这是两个屏幕上的文本的放大版本。上面的一个是在 1440x990 上拍摄的,下面的一个是在 1280x1024 上拍摄的:

比较

我努力了:

  1. 更改分辨率
  2. 颜色深度

但放大后文本看起来仍然不同。这对我来说可能是一个大问题,因为自动化脚本使用像素级图像识别。

知道是什么导致了这种差异以及如何消除它吗?我更喜欢它在 1280x1024 上的样子

答案1

LCD 屏幕存在问题。与 CRT 屏幕不同,LCD 在再现图像时使用物理像素。LCD 面板中物理像素的实际数量称为“原始分辨率”。由于像素在此处具有物理尺寸,因此当您设置与原始分辨率不同的分辨率时,显示器不能只是增加或减少像素数量,而是根据所需的分辨率使用不同的算法转换图像。当您在 1440x990 显示器上以 1280x1024 分辨率最大化图像时,它会拉伸图像并使用不同的效果(如抗锯齿)使图像适合您当前的分辨率。此外,如果您在两个显示器上设置相同的分辨率,您将无法获得所需的质量,因为在这种情况下“原始分辨率”将与实际分辨率不同,并且显示器将转换您的图像以适应物理像素大小。此外,以上所有内容都考虑您使用光栅图像,因为矢量图像(如图像外的文本、网页中的 fe)具有不同的转换算法,可为您提供任何分辨率的最佳质量。

答案2

屏幕的不同分辨率只是一种转移注意力的花招。

这种效果来自于子像素渲染它利用像素所组成的物理颜色成分(红色、绿色和蓝色子像素)来实现更高的视在分辨率,尤其是文本。

您可以在示例中清楚地看到这一点:白色文本的右边缘带红色(红色子像素是最左边的子像素,因此被激活),左边缘带蓝色(因为蓝色是最右边的子像素)。

Windows 调用此技术清晰类型. 禁用控制面板 » 外观和自定义 » 显示总是获取第二个变体,不带颜色。在 Mac OS X 上,它是使用 LCD 字体平滑选择系统偏好设置 » 常规

答案3

最终我发现有一个选项可以禁用子像素字体平滑功能(我在 Win7 中工作)。

可以通过执行以下步骤来完成:

  1. 单击“开始”
  2. 类型外观
  3. 选择“调整 Windows 的外观和性能”
  4. 转到“视觉效果”选项卡
  5. 取消勾选“平滑屏幕字体边缘”

在 1440x990 屏幕上执行此操作后,文本变得类似于我在 1280x1024 屏幕上看到的“纯”文本。

相关内容