我目前能够使用此代码拍摄桌面的屏幕截图
from PIL import Image, ImageGrab
x =ImageGrab.grab()
x.show()
但问题是,这会捕获运行脚本的python脚本/空闲对话框(框)。 我想对我的桌面屏幕截取一个干净的屏幕截图,通过脚本捕获所有桌面图标,背景屏幕和任务栏等。
有没有办法让它自动化,以便脚本可以自动执行此操作?
感谢。
答案 0 :(得分:1)
其中一个解决方案是使用Python Web服务器(龙卷风或其他)。
看一下下面的代码(Python 3版本):
from PIL import ImageGrab
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
x = ImageGrab.grab()
x.show()
self.write("Hello, world")
def make_app():
return tornado.web.Application([
(r"/", MainHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
http://[your IP address]:8888
在脚本运行时最小化IDLE窗口。
从手机或其他计算机打开浏览器,然后导航至:
ImageGrab.grab()
我无法测试此脚本,因为OutputStreamWriter oos = new OutputStreamWriter(context.openFileOutput(ARRANGED_TXT, Context.MODE_PRIVATE),"UTF-8");
仅适用于Mac和Windows,但遗憾的是不适用于Linux。
答案 1 :(得分:0)
我尝试了这段代码:
from PIL import ImageGrab
import time
import cv2
time.sleep(5)
x = ImageGrab.grab()
x.save('Screenshot.jpg')
x.show()
我将ImageGrab.grab()
的执行时间延迟了5秒,与此同时我最小化了我的工作区并切换到了我的桌面。 5秒后,它捕获了我桌面的屏幕截图并保存了它。
我仍在想办法自动捕获桌面。