代码之家  ›  专栏  ›  技术社区  ›  Jason C

在MacOS中获取屏幕的物理尺寸

  •  1
  • Jason C  · 技术社区  · 2 年前

    在macOS上使用Python可以获得给定显示器的物理尺寸(毫米或其他)吗?

    我在看 AppKit's NSScreen 但它只提供像素分辨率(通过 frame )并且似乎没有报告物理大小。我不知道我还能采取什么其他方法。

    2 回复  |  直到 2 年前
        1
  •  1
  •   Marco Bonelli    2 年前

    您应该可以从中获取此信息 CGDisplayScreenSize ,根据文档返回“以毫米为单位的指定显示的大小”。

    这个 Quartz Python库似乎有一个绑定:

    from Quartz import CGDisplayScreenSize, CGMainDisplayID
    
    display_id = CGMainDisplayID()
    dimensions = CGDisplayScreenSize(display_id)
    print(dimensions)
    
        2
  •  1
  •   Sash Sinha    2 年前

    您可以使用 Quartz. CGDisplayScreenSize :

    以毫米为单位返回显示的宽度和高度。
    func CGDisplayScreenSize(_ display: CGDirectDisplayID) -> CGSize

    import Quartz
    
    def main() -> None:
        main_display_id = Quartz.CGMainDisplayID()
        width_mm, height_mm = Quartz.CGDisplayScreenSize(main_display_id)
        print(f'{width_mm = :.2f}, {height_mm = :.2f}')
    
    if __name__ == '__main__':
        main()
    

    使用M1 Macbook Air的输出示例:

    width_mm = 286.87, height_mm = 179.29