通过Python脚本选择区域截屏

3 投票
2 回答
10091 浏览
提问于 2025-04-16 11:23

我看到了一篇很有帮助的帖子:通过Python脚本截屏 [Linux],里面讲了如何用Python截屏。这个方法很好用,但我想要和gnome-screenshot一样的功能:可以选择以下几种截屏方式:

  • 截取整个桌面
  • 截取当前活动窗口
  • 截取指定区域

有没有办法在Python中实现这些功能,或者说,能不能用gnome-screenshot这个应用来完成,然后获取到文件呢?

我试着找一个完美的命令行,让gnome-screenshot在运行时不询问保存截图的位置,而是直接通过给定路径来保存,但我找不到这个命令。

谢谢你的帮助!

2 个回答

2

我有一个项目叫做 pyscreenshot,它是用来包装一些工具的,比如 scrot、imagemagick、pyqt、wx 和 pygtk。如果你安装了其中的一个工具,就可以使用这个项目。不过,目前还没有办法捕捉到正在活动的窗口。

安装方法:

easy_install pyscreenshot

示例:

import pyscreenshot as ImageGrab

# fullscreen
im=ImageGrab.grab()
im.show()

# part of the screen
im=ImageGrab.grab(bbox=(10,10,500,500))
im.show()

# to file
ImageGrab.grab_to_file('im.png')
1

如果你不一定要使用 gnome-screenshot 这个工具的话,ImageMagick 的 import 命令可以直接把截图保存到文件里,而不需要你进行任何交互操作。

想了解更多细节,可以查看这里:http://www.imagemagick.org/script/import.php

除了命令行界面,ImageMagick 还有一个 Python API,可以让你在 Python 代码中使用它。

撰写回答