相关疑难解决方法(0)

没有PIL的Python windows 7截图

我想用python截取屏幕截图.

我尝试过使用PIL,但由于我使用的是64位窗口,而python PIL不起作用(我只能找到32位PIL版本).我顺便使用python 2.7.1.

我想拍一个截图,它并不重要,只要速度每秒可以超过1秒.优选地,它还应该能够裁剪截屏的区域,但这并不是最重要的.

主要问题似乎是我在64位上运行,很多东西似乎与之不相容.如果可能的话,我真的不想回到32位.有没有可以做到这一点的程序或模块?

python screenshot image windows-7

17
推荐指数
1
解决办法
2万
查看次数

如何在Python 3k中获取窗口或全屏截图?(没有PIL)

使用python 3,我想获得另一个窗口(不是我的应用程序的一部分)的句柄,这样我可以:

a)直接捕获该窗口作为截图或

b)确定其位置和大小并以其他方式捕获它

如果它很重要,我使用的是Windows XP(编辑:也适用于Windows 7).

我找到了这个解决方案,但它不是我需要的,因为它是全屏的,更重要的是,据我所知,PIL还不支持3.x.

screenshot window python-3.x

8
推荐指数
2
解决办法
2万
查看次数

使用 PIL(Python 图像库)检测屏幕上的图像

我试图了解如何在 Python 2.7 中使用 PIL 在整个屏幕上搜索某个图像并单击它。我一直在四处寻找,但无法找到解决方案。我想创建一个中间有一个按钮的小 GUI,单击该按钮时将在整个屏幕上搜索预定义的图像。找到图像后,程序将单击它的中心并结束。简而言之,程序将检测用户屏幕上是否存在图像并单击它。

我确实在 Sikuli 上发现了一个有趣的地方,但这对我没有帮助,因为它无法导出到 .exe。

程序每次搜索时将查找的图像很可能在同一个位置,但我不想对该位置进行硬编码,因为它有可能移动,我不希望这是一个问题稍后的。

我需要的是用于在屏幕上搜索图像并将电线发回变量的代码方法。

图片说明/示例: 图片

步枪参考图: 图片2

python python-imaging-library

8
推荐指数
1
解决办法
3万
查看次数

从python快速截取**屏幕截图

A PIL.Image.grab()大约需要0.5秒.这只是为了从屏幕上获取数据到我的应用程序,而我没有任何处理.另一方面,FRAPS可以截取高达30 FPS的屏幕截图.我有什么方法可以从Python程序中做同样的事情吗?如果没有,C程序怎么样?(我可以使用Python程序与它接口,可能...)

python optimization performance screen-scraping image

7
推荐指数
1
解决办法
8043
查看次数

使用我的应用程序的透明背景制作全屏绘画程序

我的目标是制作一个小巧的PC / Windows程序,使我可以从字面上画在屏幕顶部,并将结果另存为具有透明背景的png。像Epic PengInk之类的软件一样,但是我的方式。全部使用Python 3.7和PyQt5。

到目前为止,由于我同时在学习PyQt,因此我设法获得了一个功能绘图应用程序(基本上遵循本教程)。我设法将草稿另存为具有透明背景的png。我可以使绘图板全屏且无边框。

现在的问题是,我找不到使整个背景透明的方法。尽管我找到了使用这些方法使窗口透明和无边界的方法:

Window = Window()
Window.setStyleSheet("background:transparent;")
Window.setAttribute(Qt.WA_TranslucentBackground)
Window.setWindowFlags(Qt.FramelessWindowHint)
Window.show()
Run Code Online (Sandbox Code Playgroud)

而且有效...直到我有了绘图区域。我可以在其上绘制,它将以透明背景保存,但显示为黑色。

因此,我正在寻找该解决方案。即使没有PyQt,只要我可以使程序正常运行,我也不在乎。

因此,这就是我所拥有的(我为您展示了带有框架的窗口,以便于解释): 在此处输入图片说明

这就是我想要的: 在此处输入图片说明

这是我的代码:

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QMenuBar, QMenu, QAction, QShortcut, QFileDialog
from PyQt5.QtGui import QIcon, QImage, QPainter, QPen
from PyQt5.QtCore import Qt, QPoint


class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        top = 400
        left = 400
        width = 800
        height = 600

        icon = "icons/icon.png"

        self.setWindowTitle("ScreenPen drawing board")
        self.setGeometry(top, left, width, height)
        self.setWindowIcon(QIcon(icon))

# ---------- sets …
Run Code Online (Sandbox Code Playgroud)

python transparency screenshot python-3.x pyqt5

7
推荐指数
1
解决办法
267
查看次数

等待延迟,然后使用PyQt捕获网站图像

我正在使用PyQt(作为Python初学者).我需要能够在无头系统上截取网站的屏幕截图.我之前使用的是PhantomJS用于另一个项目,但他们在1.5中删除了Flash支持,我不想依赖于我的新项目弃用的1.4版本.

所以我正在使用PyQt自己做我的东西.我可以用一个给定的网址截取一个网站的截图,没问题.

但我一直在Flash占位符上有"蓝色骰子"flash插件图标(是的,javascript和插件被激活)

self.settings.setAttribute(QtWebKit.QWebSettings.PluginsEnabled,True) 
self.settings.setAttribute(QtWebKit.QWebSettings.JavascriptEnabled,True) 
Run Code Online (Sandbox Code Playgroud)

我正在Youtube视频页面上进行一些测试,这是我的问题的一个例子:

图片

第二部分,可能与第一部分有关:如何告诉PyQt在拍摄截图之前等待几秒钟?正如您在示例中看到的那样,右侧的图像仍然被卸载,因为它们是使用javascript和data属性加载的,在我的脚本中,我在loadFinished信号(onLoad()等效的javascript)上截取屏幕截图.

我的第一个猜测就是

time.sleep(2) 
Run Code Online (Sandbox Code Playgroud)

在调用我的捕获方法之前,它不起作用.我假设在这个休眠时间内Webkit加载也处于睡眠状态,防止在页面上加载任何内容.

我试图创建一个自定义信号,但后来我仍然不知道如何在不睡觉的情况下触发它.

我的最后一个猜测是我需要线程化我的应用程序.我对吗?

如果您有任何提示/脚本来帮助我显示Flash内容和/或添加类似信号的setTimeout,我将非常感激!

在此先感谢您的帮助.

编辑: 只需快速编辑即可添加我的解决方案:

timeoutTimer = QTimer()
timeoutTimer.setInterval(3000) # wait for 3secs
timeoutTimer.setSingleShot(True)
timeoutTimer.timeout.connect(theMethodToCallOnTimeout)
Run Code Online (Sandbox Code Playgroud)

关于flash事物:看起来像OSX上的flash播放器坏了(可能与32/64位问题有关).

python flash macos qt pyqt

4
推荐指数
1
解决办法
5544
查看次数