You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Windows 10中使用Delphi 10.4获取屏幕物理PPI的方法

获取屏幕物理PPI并绘制实际尺寸矩形的实现方案

核心逻辑

要绘制精准的2×2英寸矩形,核心是先获取屏幕物理PPI(每英寸像素数),再通过公式计算矩形的像素尺寸:矩形像素边长 = 2 * 物理PPI。


各平台获取物理PPI的可行方法

Windows

  • 方法1:调用系统API获取基础PPI
    使用GetDeviceCaps函数,传入LOGPIXELSX或LOGPIXELSY参数,可获取系统当前DPI设置,但该值可能受系统缩放影响,并非严格物理PPI。
  • 方法2:读取EDID计算精准PPI
    读取显示器EDID数据(包含屏幕物理宽高,单位毫米),结合屏幕分辨率计算:
    物理宽度英寸 = EDID物理宽度mm / 25.4
    水平PPI = 屏幕水平分辨率 / 物理宽度英寸
    
    垂直PPI同理计算,多数屏幕的水平/垂直PPI一致,取其一即可。

macOS

  • 通过Core Graphics与NSScreen API获取:
    1. 用CGDisplayCopyDisplayMode获取屏幕物理分辨率(像素宽高)
    2. 用CGDisplayScreenSize获取屏幕物理尺寸(单位毫米)
    3. 转换为英寸后计算PPI:PPI = 分辨率边长 / (物理尺寸mm / 25.4)

iOS

  • 结合UIScreen属性计算:
    1. 获取物理像素分辨率:UIScreen.main.nativeBounds.size
    2. 结合设备官方标称的物理尺寸(如iPhone 14屏幕宽度为2.82英寸),计算PPI:
    PPI = 物理像素边长 / 物理宽度英寸
    

Android

  • 优先通过屏幕规格计算:
    1. 获取屏幕物理分辨率:displayMetrics.widthPixels/heightPixels
    2. 结合设备官方标称的屏幕对角线尺寸(如6.7英寸),计算PPI:
    PPI = sqrt(宽度像素² + 高度像素²) / 屏幕对角线英寸数
    
    注意DisplayMetrics.xdpi/ydpi可能存在厂商校准误差,仅作参考。

绘制2×2英寸矩形的步骤

  1. 获取精准的物理PPI值
  2. 计算矩形的物理像素边长:sideLength = 2 * PPI
  3. 绘制时确保使用物理像素坐标(比如Windows下开启DPI感知,iOS/Android用原生绘图API处理像素映射),避免系统逻辑像素缩放干扰
  4. 用实际尺子测量屏幕矩形,微调PPI值以达到精准的2×2英寸效果

内容的提问来源于stack exchange,提问作者user3140961

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 09:02:52