使用 python/ PIL 仅截取我的桌面图标的完整屏幕截图
Taking a full screenshot of only my desktop icons using python/ PIL
我目前可以使用此代码截取我的桌面
from PIL import Image, ImageGrab
x =ImageGrab.grab()
x.show()
但问题是,这会捕获 python script/idle 对话框(框),它也是 运行 脚本。
我想截取桌面屏幕的干净屏幕截图,通过脚本捕获所有桌面图标、背景屏幕和任务栏等。
有没有办法让它自动化,以便脚本可以自动执行此操作?
谢谢。
其中一个解决方案是使用 Python 网络服务器(tornado 或其他)。
看看下面的代码(Python3版本):
pip install tornado
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()
当脚本为 运行 时最小化 IDLE window。
从您的 phone 或另一台计算机打开浏览器并导航至:
http://[your IP address]:8888
我无法测试此脚本,因为 ImageGrab.grab()
仅适用于 Mac 和 Windows 但不幸的是不适用于 Linux.
我试过这段代码:
from PIL import ImageGrab
import time
import cv2
time.sleep(5)
x = ImageGrab.grab()
x.save('Screenshot.jpg')
x.show()
我将 ImageGrab.grab()
的执行延迟了 5 秒,同时我最小化了我的工作区并切换到我的桌面。 5 秒后,它截取了我的桌面屏幕截图并保存了。
我仍在想办法自动捕获桌面。
我目前可以使用此代码截取我的桌面
from PIL import Image, ImageGrab
x =ImageGrab.grab()
x.show()
但问题是,这会捕获 python script/idle 对话框(框),它也是 运行 脚本。 我想截取桌面屏幕的干净屏幕截图,通过脚本捕获所有桌面图标、背景屏幕和任务栏等。
有没有办法让它自动化,以便脚本可以自动执行此操作?
谢谢。
其中一个解决方案是使用 Python 网络服务器(tornado 或其他)。
看看下面的代码(Python3版本):
pip install tornado
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()
当脚本为 运行 时最小化 IDLE window。
从您的 phone 或另一台计算机打开浏览器并导航至:
http://[your IP address]:8888
我无法测试此脚本,因为 ImageGrab.grab()
仅适用于 Mac 和 Windows 但不幸的是不适用于 Linux.
我试过这段代码:
from PIL import ImageGrab
import time
import cv2
time.sleep(5)
x = ImageGrab.grab()
x.save('Screenshot.jpg')
x.show()
我将 ImageGrab.grab()
的执行延迟了 5 秒,同时我最小化了我的工作区并切换到我的桌面。 5 秒后,它截取了我的桌面屏幕截图并保存了。
我仍在想办法自动捕获桌面。