迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

使用 Python 截屏

作者:迹忆客 最近更新:2023/06/30 浏览次数:

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 所在的目录中找到此图像。

使用 Pyautogui save() 输出的 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 Numpy 和 OpenCV 输出的 Python 屏幕截图

这就是关于如何使用 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() 方法保存捕获的图像。

这是我们得到的屏幕截图。

输出:

使用 Pillow 输出的 Python 屏幕截图

本质上,这就是在 Python 中截取屏幕截图的方法,即通过设置坐标。 请参阅此文档以了解有关 Pillow 模块的更多信息。


使用 Pyscreenshot 模块使用 Python 进行屏幕截图

Python 提供了这个名为 pyscreenshot 的模块来完成截取屏幕截图的唯一任务。 要安装此模块,请在终端中使用以下命令。

pip install pyscreenshot

安装模块后,使用此代码截取整个屏幕的屏幕截图。

示例代码:

import pyscreenshot
image_demo = pyscreenshot.grab()
image_demo.save("demo_four.png")

我们首先导入了pyscreenshot模块,然后使用grab()函数来捕获屏幕。 最后,我们使用 save() 函数来保存图像。

这是我们作为输出得到的图像。

输出:

Python 截图 使用 Pyscreenshot 全屏输出

我们还可以使用这个模块来捕获屏幕的一部分。 我们只需将所需的坐标作为元组传递给 grab()函数。

这是用于截取特定屏幕部分的屏幕截图的代码。

示例代码:

import pyscreenshot
image_demo = pyscreenshot.grab(bbox=(100, 100, 500, 500))
image_demo.save("demo_five.png")

请注意,我们在代码的第二行中传递了要捕获的屏幕部分的坐标。 其余代码的工作方式与前一代码相同。

这是捕获的图像。

输出:

使用 Pyscreenshot 屏幕部分输出的 Python 屏幕截图

请注意,pyscreenshot 这个模块已不再使用,您最好采用我们讨论的前两种方法在 Python 中截取屏幕截图。 这就是关于如何在 Python 中截取屏幕截图的全部内容。


总结

本文讨论了如何使用 Python 编程语言截取屏幕截图。 我们了解了如何将 pyautogui 模块与 save() 函数以及其他模块(如 NumPy 和 OpenCV)一起使用。

我们还学习了如何使用 Python 的 Pillow 模块来捕获屏幕的一部分。 此外,我们还了解了如何使用 pyscreenshot 模块捕获整个屏幕及其部分内容。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便