迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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 模块捕获整个屏幕及其部分内容。

上一篇:在 Python 中绘制水平线

下一篇:没有了

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

本文地址:

相关文章

在 Python 中绘制水平线

发布时间:2023/06/30 浏览次数:157 分类:Python

我们将介绍如何在Python中创建一条水平线。 我们还将介绍 Python 中的 Matplotlib 库。Python 中的水平线 水平线是从左到右或从右到左的任何直线。

使用 Python 连接到 PostgreSQL 数据库

发布时间:2023/06/30 浏览次数:134 分类:Python

本文介绍了创建与 PostgreSQL 上的数据库的连接的过程。 我们需要安装 PostgreSQL 和创建数据库等先决条件,如下所述。在系统中安装 PostgreSQL

Python 中的 Rabin-Karp 算法

发布时间:2023/06/30 浏览次数:154 分类:Python

我们将介绍 Python 中的 Rabin-Karp 算法,并讨论如何在 Python 程序中使用它。Python 中的 Rabin-Karp 算法 Rabin-Karp 算法从给定的输入或值中查找特定的数字、字母或模式。

Python 中的后台进程

发布时间:2023/06/30 浏览次数:129 分类:Python

我们将介绍如何在后台运行Python脚本作为后台进程。 我们还将介绍Python中的pythonw。Python 中的后台进程

Python 3 中的 Urllib2

发布时间:2023/06/30 浏览次数:92 分类:Python

在本篇文章中,我们的目标是探索解决 Python 中 ModuleNotFoundError: No module named 'urllib2' 问题的方法。Python 3 中的 urllib

Python 中的邻接矩阵

发布时间:2023/06/29 浏览次数:108 分类:Python

Python 中使用图数据结构来表示各种现实生活中的对象,例如网络和地图。 我们可以使用邻接矩阵来表示图。本文将讨论在 Python 中实现邻接矩阵的不同方法。创建邻接矩阵

NumPy 相关函数

发布时间:2023/06/29 浏览次数:68 分类:Python

本篇文章介绍了Python中NumPy库的相关函数 np.corrcoef() 函数。NumPy 中的相关性 相关系数是一个数字值,表示数据集给定特征之间的关系。

在 Python 中将 Unicode 转换为 ASCII

发布时间:2023/06/29 浏览次数:125 分类:Python

通过本文,我们将学习如何将 Unicode 编码为字节,了解系统编码的不同方法以及在 Python 中将 Unicode 转换为 ASCII。在 Python 中将 Unicode 转换为 ASCII

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便