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

Tkinter与PIL屏幕分辨率不一致致截图错位问题及解决

Tkinter窗口截图错位问题:分辨率缩放不匹配的解决
  • 问题场景:
    我开发了一个带透明可移动功能的Tkinter窗口程序,点击按钮时通过winfo_rootx()、winfo_rooty()等方法获取窗口边缘坐标,传入PIL.ImageGrab.grab()实现窗口区域截图。但发现窗口在左上角时截图正常,移到右下角后,截图区域和窗口完全错位。

  • 排查过程:
    对比Tkinter和PIL识别的屏幕参数后发现,Tkinter返回的屏幕分辨率是1536x864(系统缩放后的逻辑分辨率),而PIL识别的是物理分辨率1920x1080,两者的缩放比例为1920/1536=1.25。这就导致Tkinter输出的逻辑坐标直接传入PIL后,对应到物理像素上的位置出现偏移。

  • 解决方法:
    将Tkinter获取到的所有坐标值(包括窗口的x、y起始位置和宽高)都乘以1.25的缩放因子,再传入ImageGrab.grab(),即可解决截图错位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 21:52:02