首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在另一台不同分辨率的计算机上运行Pyautogui

在另一台不同分辨率的计算机上运行Pyautogui
EN

Stack Overflow用户
提问于 2017-07-25 20:01:47
回答 2查看 3.3K关注 0票数 1

我有一个python脚本,它可以在我的工作计算机(1600x900分辨率)上完美运行。就是在这台电脑上,我拍摄了pyautogui.locateOnScreen使用的所有屏幕截图。我试图在我的家用笔记本电脑上用不同的分辨率(1340x640)运行这个程序,但脚本似乎找不到图像位置。我猜是因为分辨率不同。(我已将脚本文件夹从我的工作计算机复制到家庭计算机,因此图像文件的路径完全相同)。在我的脚本中有没有什么我可以修改的,这样pyautogui.locateOnScreen就可以在任何计算机分辨率上识别图像了?

EN

回答 2

Stack Overflow用户

发布于 2017-07-25 23:00:19

我认为你需要用不同的分辨率截取图像的屏幕截图,然后在程序开始时让它检测它是在1600x900的屏幕上还是在1340x640的屏幕上。然后让所有的“locateOnScreen”片段都有一个变量,并根据屏幕大小,将这些变量替换为指向正确图像的路径。

代码语言:javascript
运行
复制
import pyautogui

def function():
    pyautogui.locateOnScreen(x)
    ...
    pyautogui.locateOnScreen(y)
    ...

screen = pyautogui.size()
if screen = (1600, 900):
    x = 'image1_1600_900.png'
    y = 'image2_1600_900.png'
else:
    x = 'image1_1340_640.png'
    y = 'image2_1340_640.png'

function()
票数 2
EN

Stack Overflow用户

发布于 2021-10-03 16:12:52

我是PyAutoGUI的创建者。你的问题不是屏幕分辨率,而是屏幕缩放。您的程序可以在不同分辨率的显示器上正常工作。但是在高分辨率下,程序中的文本和按钮会变得太小,所以Windows和macOS通过“屏幕缩放”解决了这个问题,这可以将文本和按钮等UI元素的大小增加150%或200%。如果您有多个监视器,每个监视器可以有其自己的屏幕缩放设置;例如,一个监视器为100%,另一个为150%。

例如,如果您在显示器处于100%的状态下拍摄屏幕截图,然后尝试在缩放到200%的显示器上使用它,图像将不会匹配,因为屏幕截图的宽度和长度实际上是在200%显示器上的一半。

到目前为止,还没有解决这个问题的方法。调整屏幕截图的大小可能不起作用,因为可能存在细微的差异,而屏幕截图机制目前需要一个像素完美的匹配。你只需要用不同的屏幕缩放设置在显示器上重新截图即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45302681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档