问题标签 [python-mss]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 截图 [ctypes.windll CreateDCFromHandle]
我正在创建一个仅使用纯 python(ctypes)的屏幕截图模块,没有像 win32、wx、QT 之类的大库......它必须管理多屏幕(PIL 和 Pillow 不能)。
我阻塞的地方是在调用 CreateDCFromHandle 时,ctypes.windll.gdi32 不知道这个函数。我看了win32源代码就受到启发,但没用。正如评论中所说,这个功能在 MSDN 中不存在,那么我应该应用哪些更改来考虑其他屏幕?
这是适用于主监视器的代码,但不适用于其他监视器:源代码。它在第 35 行阻塞。我尝试了很多组合,在这里和其他网站上寻找答案。但对我来说没有任何功能......这只是一个截图!
你有线索吗?
提前致谢 :)
编辑,我发现了我的秘密!这是有效的代码:
带有完整解释的法语文章:Windows : capture d'écran
python - 将 CGImageRef 转换为 PIL
如何在不将图像保存到 osx 上的磁盘的情况下将 CGImageRef 转换为 PIL?
我想从 CGImageRef 获取原始像素数据并使用 Image.fromstring() 来制作 PIL 图像
但这并没有给我正确的图像。
这是我期望的图像:
这是我在 PIL 中得到的图像:
python - 使用 Python 将屏幕截图保存在数组中
如何使用 python、mss 和 opencv 捕获我的计算机屏幕并将其保存为图像数组以形成电影?我正在转换为灰度,因此它可以是 3 维数组。我想将每个 2d 屏幕截图存储在 3d 数组中以供查看和处理。我很难构建一个数组来保存屏幕截图序列以及回放 cv2 中的屏幕截图序列。非常感谢
python - mss sct.grab 不允许我选择要使用的显示器
我有两台显示器连接到我的电脑,同时两个显示器都处于活动状态。显示器没有镜像 - 每个显示器显示不同的内容。
我需要能够在代码中选择要与 sct.grab 一起使用的这两个监视器中的哪一个。
我已经看到并测试了这段代码: sct_img = sct.grab(sct.monitors[1]) 它可以工作 - 我可以将“1”更改为“2”,它确实会截取另一个监视器 - 全部。但是,我不知道如何将我希望使用的监视器的参数以及我希望抓取的屏幕区域都传递给 sct.grab 以获取部分屏幕截图。看来我可以得到部分截图,但不选择显示器,或者我可以选择显示器,但只能获得全屏。我需要选择显示器,还要选择地区。我正在寻找有关适当语法的帮助。
我有这个代码:
但我想要的是在某个地方告诉 sct.grab 从我的两个监视器中的哪一个得到这个:例如,像字典中的参数一样指定使用哪个监视器会很好:
任何帮助将不胜感激。
python - 在不写入磁盘的情况下截取屏幕截图
我想要一个可以截屏而不立即将其直接保存到磁盘的python脚本。基本上是否有一个模块可以返回原始字节,然后我可以自己手动将其写入文件?
我已经检查了 mss、pyscreenshot 和 PIL,但我找不到我需要的东西。我找到了一个看起来像我正在寻找的函数,称为 frombytes。但是,在从 frombytes 函数中检索字节并将其保存到文件中后,我无法将其视为 .BMP、.PNG、.JPG。是否有一个函数可以返回我可以自己保存到文件中的原始字节,或者可能是具有类似功能的模块?
python - Pytesseract,试图从屏幕上检测文本
我将 MSS 与 pytesseract 结合使用来尝试在屏幕上读取,以确定来自被监控区域的字符串。我的代码如下:
我得到以下错误返回: AttributeError: 'numpy.ndarray' object has no attribute 'read'
我还尝试使用 pyplot 将其转换回图像,如代码示例中的注释行所示。但是,这会打印出错误: TypeError: img is not a numpy array, not a scalar
我对 Python 有点陌生(周日才开始涉足它)。但是,我在其他检测图像方面的尝试相当成功。但是,为了达到我的最终目标,我需要能够阅读屏幕上的字符。它们将始终具有相同的字体和相同的大小,因此我不必担心缩放问题,但目前我正试图通过将图像存储在内存中来了解它是如何工作的(不保存到文件)从桌面上的回收站图标中,并尝试从图像中获取字符串“回收站”。
更新 我想我可能有一些突破,但如果我试图同时显示流,就会出现一些问题。但是,我可以通过使用临时文件足够快地处理流。
我更新的代码如下:
这目前吐出一个权限被拒绝的错误,如下:
我怀疑这是否正常,我将在家里的笔记本电脑上尝试此更新。这可能是由于对工作笔记本电脑的限制,我只是没有时间解决这个问题。
我很困惑为什么在没有 while True: 循环的情况下显示图像可以正常工作,作为屏幕截图。但是,将其放入 while True: 循环会导致窗口冻结。
python-2.7 - MSS 不截取整个屏幕
我是一名初学者程序员,我正在尝试编写一个程序来捕获屏幕截图。我正在使用 MSS 这样做。我可以使用 MSS 截取屏幕截图,但只能截取屏幕的一部分。请参阅随附的代码。
请看附图。 https://i.stack.imgur.com/cZ73Y.png
编辑:格式错误
edit1:我的原始分辨率是 3200 x 1800。当我将分辨率更改为 1920 x 1080 时,库工作正常。
python - 如何修复 KeyError:Python 中的“显示”
我在 Python 中使用 mss 库来截取屏幕截图并将其保存在当前路径上。它使用 PyCharm 在我的 Mac 上完美运行。但是当我尝试在 Ubuntu 16 上运行相同的东西时,我得到一个错误,即使我完全按照文档所说的那样做:
但我收到此错误,如何解决?
python - opencv cap.read 有一个属性错误。如何排除故障?
我们目前正在集成两个代码: 1. 用于屏幕录制的 mss 图像抓取 2. opencv color tracker
我们遇到了这个错误:
我们想使用屏幕抓取作为颜色跟踪代码的输入。将会发生的是,当屏幕捕获代码正在发生时,颜色跟踪代码将同时在捕获的屏幕上生效。
我们不知道我们的代码有什么问题,下面是脚本:
先感谢您!:)