如果浏览器缩小大图像,它会在不同的屏幕分辨率上显示相同数量的细节吗?

If the browser downscales a large image, will it display the same amount of detail on different screen resolutions?

这个问题与网络开发有关。

首先我要为这个可怕的标题道歉,但我不确定如何命名。 CSS 像素以及它们与屏幕分辨率的交互方式已经让我有点困惑,当你添加“中间像素层”和图像绘制时,它就更加模糊了。所以这是我的实际问题:

假设我们有一个图像设置为在网页上显示为 2x1(css 像素)。我们反而给它提供 4x1 图像(光栅化)。浏览器会将此图像调整为我们之前指定的 2x1 css 像素。但是,在 1 CSS 像素 = 2 个设备像素 的设置中,我们在技术上是否能够看到所有 4x1 像素?或者它会改为将 4x1 图像调整为 2x1 然后将每个像素显示两次?这是否会在每个 browser/device 的基础上发生变化?

奖励积分:这对为视障人士放大 Web 内容的辅助工具有何影响? (如果有的话)。

回答我自己的问题。简短的回答是浏览器会根据屏幕分辨率显示不同数量的细节。

CSS 像素 不是 屏幕像素。如果图像为 600x600 像素,并且您决定将其显示在 CSS 定义的 300x300 (img:{width:300px;height:300px}) 区域中,则它可以显示为 300x300 屏幕像素,也可以显示为 600x600 屏幕像素。两者中的哪一个取决于最终用户的 OS 屏幕分辨率。

示例

我创建了一个 4x1 像素的 png 图像:

我将这张图片添加到 html 页面并用 img:{width:2px; height:1px;} 调整了它的大小。为了更好地衡量,我还添加了蓝色 div 和 div:{width:2px; height:1px;} 波纹管。

然后我将页面的“css 分辨率”设置为 OS 屏幕分辨率的一半(如果 OS 设置为 2000x2000,我确保完整html 页面的 css 宽度 x 高度为 1000x1000 像素)。所以每个 css 像素将包含 4 个屏幕像素。

它是这样显示的:

图像和蓝色 div 都是 2 像素宽(即 css 像素),但它们显示为 4 个屏幕像素。在蓝色 div 的情况下,它会复制像素以适应屏幕分辨率。但就图像而言,它显示所有 4 individual 像素。在这两种情况下,它都会垂直复制像素以适应屏幕分辨率(从技术上讲,它可能更像是一种延伸而不是复制,但你明白了)。

我对此并不完全确定,但我假设在这个阶段所有浏览器都以类似的方式运行。