面对设备欺骗,如何从JS/CSS中准确检测DPI/PPI?
从 JS/CSS 检测系统 DPI/PPI
背景
在具有不同 DPI/PPI 设置的设备之间保持一致的用户体验至关重要适用于生成高分辨率图像的现代应用程序。然而,准确检测设备的 DPI/PPI 存在挑战,因为传统方法可能无法提供可靠的结果。
设备说谎:错误的 96ppi 读数
您使用具有固定“的元素的初始方法CSS 中的 1in" 宽度并检查其 offsetWidth 似乎是合理的。然而,众所周知,iPhone 会误报其 PPI,给出 96ppi 的错误值。这种错误的读数使该方法不可靠。
替代方法:设备显示尺寸
另一个潜在的解决方案是检索设备显示尺寸(以英寸为单位)并将其除以宽度(以像素为单位)。然而,在 JS/CSS 中访问这些尺寸并不简单。
解决方案:DevicePixelRatio
幸运的是,有一个可靠的方法来获取设备 DPI/PPI:
- 使用 window.devicePixelRatio: 此属性提供设备屏幕上的像素与 CSS 像素的比率。
- 创建测试元素: 使用以下命令创建不可见元素CSS 中的高度和宽度均为 1 英寸。
- 检索显示分辨率:通过将元素的偏移宽度和高度乘以 devicePixelRatio 来计算 DPI/PPI。
<code class="javascript">const testDiv = document.createElement('div'); testDiv.style.height = '1in'; testDiv.style.left = '-100%'; testDiv.style.position = 'absolute'; testDiv.style.top = '-100%'; testDiv.style.width = '1in'; document.body.appendChild(testDiv); const DPI_X = testDiv.offsetWidth * window.devicePixelRatio; const DPI_Y = testDiv.offsetHeight * window.devicePixelRatio; console.log(DPI_X, DPI_Y);</code>
登录后复制
此方法可在各种设备上提供准确的 DPI/PPI 读数,包括那些使用传统方法可能误报 PPI 的设备。
以上是面对设备欺骗,如何从JS/CSS中准确检测DPI/PPI?的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前
By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前
By 尊渡假赌尊渡假赌尊渡假赌
刺客信条阴影:贝壳谜语解决方案
3 周前
By DDD
Windows 11 KB5054979中的新功能以及如何解决更新问题
2 周前
By DDD
威尔R.E.P.O.有交叉游戏吗?
1 个月前
By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)
