使用 Python 截屏
Python 编程语言允许我们执行各种任务,所有这些都借助简单的模块和简短的代码。 在 Python 的帮助下截取屏幕截图就是这样的任务之一。
Python 为我们提供了许多模块,使我们能够执行不同的任务。 使用 Python 及其库截取屏幕截图的方法有多种。
本文将引导您完成使用 Python 截取屏幕截图必须遵循的所有步骤。 让我们开始!
使用 Pyautogui 模块使用 Python 进行屏幕截图
第一种方法使用 Python 提供的 pyauotgui 模块。 您可以在终端窗口中使用以下命令安装此模块。
$ pip install pyautogui
pyautogui 模块使用 snapshot() 函数来帮助捕获整个屏幕。 稍后,您可以使用 save() 函数保存图像,也可以使用 imwrite() 函数以及 NumPy 和 OpenCV 模块将图像写入磁盘。
详细看看这两种方法。
使用 Pyautogui 模块中的 save() 函数使用 Python 进行截图
安装 pyautogui 模块后,截取屏幕截图的最简单方法是使用 snapshot()
函数和 save()
函数。 下面是使用这些函数的示例代码。
示例代码:
import pyautogui
demo_image = pyautogui.screenshot()
demo_image.save("demo_one.jpg")
首先,我们导入 pyautogui 模块。 然后,我们调用 snapshot() 函数来捕获屏幕图像。
此外,在最后一行代码中,我们使用 save() 函数以及要保存图像的名称。 在这种情况下,可以通过文件名 demo_one.jpg 找到捕获的图像。
下面是我们得到的输出图像。 请注意,您将在 Jupyter Notebook 或 Python 所在的目录中找到此图像。
如果您希望在捕获图像时有一些延迟,可以使用 time 模块的 sleep()
函数。
使用 Numpy 和 Opencv 模块与 Pyautogui 一起使用 Python 进行屏幕截图
第二种方法涉及使用另外两个模块以及 pyautogui; 它们是 NumPy 和 OpenCV。 我们在第一种方法中使用了 save() 函数来保存图像。
但在这里,我们将使用这两个模块来截图并保存。
通过在终端中编写以下命令来安装 Numpy 和 OpenCV。
$ pip install numpy
$ pip install opencv-python
这是安装所有模块后必须使用的代码。
示例代码:
#import the required modules
import numpy as x
import cv2
import pyautogui
#use pyautogui to take screenshot
demo_image = pyautogui.screenshot()
#use opencv and numpy to manipulate image
demo_image = cv2.cvtColor(x.array(demo_image),cv2.COLOR_RGB2BGR)
#save the image using opencv
cv2.imwrite("demo_two.png", demo_image)
我们首先导入所需的模块,然后使用 snapshot()
函数来捕获屏幕。 然后,我们将图像转换为 NumPy 数组,并将颜色顺序从 RGB 更改为 BGR。
这样做是因为 OpenCV 读取图像时,要求颜色顺序为 BGR 而不是默认的 RGB。 最后,我们使用 imwrite()
函数将图像写入磁盘。
这就是输出图像的样子。
输出:
这就是关于如何使用 pyautogui 模块在 Python 中截取屏幕截图。 现在,我们将继续使用下一个方法来执行相同的操作。
使用 Pillow 模块使用 Python 进行截图
默认情况下使用 pyautogui 模块捕获整个屏幕。 但是,如果我们必须捕获屏幕的一部分,我们可以使用 Pillow 模块。
该模块使用另一个名为 ImageGrab 的子模块,它允许我们设置要捕获的屏幕所需区域的坐标。 我们使用 grab()
函数来指定这些坐标。
这是此方法的代码。
示例代码:
from PIL import ImageGrab
ss_coordinates = (200, 200, 600, 600)
demo_image = ImageGrab.grab(ss_coordinates)
demo_image.save("demo_three.jpg")
我们首先导入 Pillow 模块和 ImageGrab 子模块。 然后,我们为要捕获的屏幕设置一些坐标。
此外,我们使用了grab()函数并将这些坐标传递给该函数。 然后,使用 save() 方法保存捕获的图像。
这是我们得到的屏幕截图。
输出:
本质上,这就是在 Python 中截取屏幕截图的方法,即通过设置坐标。 请参阅此文档以了解有关 Pillow 模块的更多信息。
使用 Pyscreenshot 模块使用 Python 进行屏幕截图
Python 提供了这个名为 pyscreenshot 的模块来完成截取屏幕截图的唯一任务。 要安装此模块,请在终端中使用以下命令。
pip install pyscreenshot
安装模块后,使用此代码截取整个屏幕的屏幕截图。
示例代码:
import pyscreenshot
image_demo = pyscreenshot.grab()
image_demo.save("demo_four.png")
我们首先导入了pyscreenshot模块,然后使用grab()函数来捕获屏幕。 最后,我们使用 save()
函数来保存图像。
这是我们作为输出得到的图像。
输出:
我们还可以使用这个模块来捕获屏幕的一部分。 我们只需将所需的坐标作为元组传递给 grab()
函数。
这是用于截取特定屏幕部分的屏幕截图的代码。
示例代码:
import pyscreenshot
image_demo = pyscreenshot.grab(bbox=(100, 100, 500, 500))
image_demo.save("demo_five.png")
请注意,我们在代码的第二行中传递了要捕获的屏幕部分的坐标。 其余代码的工作方式与前一代码相同。
这是捕获的图像。
输出:
请注意,pyscreenshot 这个模块已不再使用,您最好采用我们讨论的前两种方法在 Python 中截取屏幕截图。 这就是关于如何在 Python 中截取屏幕截图的全部内容。
总结
本文讨论了如何使用 Python 编程语言截取屏幕截图。 我们了解了如何将 pyautogui 模块与 save()
函数以及其他模块(如 NumPy 和 OpenCV)一起使用。
我们还学习了如何使用 Python 的 Pillow 模块来捕获屏幕的一部分。 此外,我们还了解了如何使用 pyscreenshot 模块捕获整个屏幕及其部分内容。
相关文章
Pandas DataFrame DataFrame.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:Python
-
DataFrame.shift() 函数是将 DataFrame 的索引按指定的周期数进行移位。
Python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:Python
-
Python Pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
Pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:Python
-
Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。
Pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:Python
-
本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。
Pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:Python
-
本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。
在 Python 中将 Pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:Python
-
了解如何在 Python 中将 Pandas 系列日期时间转换为字符串