Tomar capturas de pantalla usando Python

Shikha Chaudhary 10 octubre 2023
  1. Use el módulo Pyautogui para tomar capturas de pantalla usando Python
  2. Use el módulo de almohada para tomar capturas de pantalla usando Python
  3. Use el módulo Pyscreenshot para tomar capturas de pantalla usando Python
  4. Conclusión
Tomar capturas de pantalla usando Python

El lenguaje de programación Python nos permite realizar varias tareas, todas con la ayuda de módulos simples y un código breve y directo. Tomar capturas de pantalla con la ayuda de Python es una de esas tareas.

Python nos proporciona muchos módulos que nos permiten realizar diferentes tareas. Hay varias formas de tomar una captura de pantalla usando Python y sus bibliotecas.

Este artículo lo guiará a través de todos los pasos que debe seguir para tomar una captura de pantalla usando Python. ¡Vamos a empezar!

Use el módulo Pyautogui para tomar capturas de pantalla usando Python

El primer enfoque utiliza el módulo pyauotgui que proporciona Python. Puede instalar este módulo usando el siguiente comando en la ventana del terminal.

pip install pyautogui

El módulo pyautogui utiliza la función screenshot() que ayuda a capturar la pantalla completa. Más tarde, puede usar la función save() para guardar la imagen o la función imwrite() junto con los módulos NumPy y OpenCV para escribir la imagen en el disco.

Mire estos dos métodos en detalle.

Use la función guardar () en el módulo Pyautogui para tomar capturas de pantalla usando Python

Una vez que haya instalado el módulo pyautogui, la forma más sencilla de tomar una captura de pantalla es usar la función screenshot() y la función save(). Aquí hay un código de ejemplo que usa estas funciones.

Código de ejemplo:

import pyautogui

demo_image = pyautogui.screenshot()
demo_image.save("demo_one.jpg")

Primero, importamos el módulo pyautogui. Luego, llamamos a la función screenshot(), que captura una imagen de la pantalla.

Además, en la última línea de código, usamos la función guardar() junto con el nombre con el que queremos guardar la imagen. En este caso, la imagen capturada se puede encontrar con el nombre de archivo demo_one.jpg.

A continuación se muestra la imagen que obtenemos como salida. Tenga en cuenta que encontrará esta imagen en el mismo directorio que Jupyter Notebook o Python.

Captura de pantalla de Python usando Pyautogui save() Salida

Si desea algo de retraso en la captura de la imagen, puede utilizar la función sleep() del módulo tiempo.

Use los módulos Numpy y Opencv con Pyautogui para tomar capturas de pantalla usando Python

El segundo método implica el uso de dos módulos más junto con pyautogui; estos son NumPy y OpenCV. Usamos la función save() para guardar la imagen en el primer método.

Pero aquí, usaremos estos dos módulos para tomar una captura de pantalla y guardarla.

Instale Numpy y OpenCV escribiendo los siguientes comandos en la terminal.

pip install numpy
pip install opencv-python

Aquí está el código que debe usar una vez que todos los módulos estén instalados.

Código de ejemplo:

# 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)

Primero importamos los módulos requeridos y luego usamos la función screenshot() para capturar la pantalla. Luego, convertimos la imagen en una matriz NumPy y cambiamos el orden de los colores de RGB a BGR.

Esto se hace porque cuando OpenCV lee la imagen, requiere que el orden de los colores sea BGR y no el RGB predeterminado. Por último, usamos la función imwrite() para escribir la imagen en el disco.

Así es como se ve la imagen de salida.

Producción:

Captura de pantalla de Python usando Pyautogui Numpy y OpenCV Output

Se trataba de cómo puedes tomar capturas de pantalla en Python usando el módulo pyautogui. Ahora, vamos a pasar al siguiente método para hacer lo mismo.

Para obtener más información sobre el módulo pyautogui, consulte esta documentación.

Use el módulo de almohada para tomar capturas de pantalla usando Python

El uso del módulo pyautogui por defecto captura toda la pantalla. No obstante, si tenemos que capturar una parte de la pantalla, podemos utilizar el módulo Almohada.

Este módulo utiliza otro submódulo llamado ImageGrab que nos permite establecer las coordenadas de la región deseada de la pantalla que queremos capturar. Usamos la función grab() para especificar estas coordenadas.

Aquí está el código para este enfoque.

Código de ejemplo:

from PIL import ImageGrab

ss_coordinates = (200, 200, 600, 600)
demo_image = ImageGrab.grab(ss_coordinates)
demo_image.save("demo_three.jpg")

Primero importamos el módulo Pillow y el submódulo ImageGrab. Luego, establecemos algunas coordenadas para la pantalla que queremos capturar.

Además, usamos la función grab() y pasamos estas coordenadas a esta función. Luego, la imagen capturada se guarda mediante el método save().

Esta es la captura de pantalla que obtenemos.

Producción:

Captura de pantalla de Python con salida de almohada

Esencialmente, así es como puede tomar una captura de pantalla en Python, es decir, configurando sus coordenadas. Consulte esta documentación para saber más sobre el módulo Almohada.

Use el módulo Pyscreenshot para tomar capturas de pantalla usando Python

Python proporciona este módulo llamado pyscreenshot para la única tarea de tomar capturas de pantalla. Para instalar este módulo, use el siguiente comando en la terminal.

pip install pyscreenshot

Una vez que el módulo esté instalado, use este código para tomar una captura de pantalla de toda la pantalla.

Código de ejemplo:

import pyscreenshot

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

Primero importamos el módulo pyscreenshot y luego usamos la función grab() para capturar la pantalla. Finalmente, usamos la función save() para guardar la imagen.

Aquí está la imagen que obtenemos como salida.

Producción:

Captura de pantalla de Python usando Pyscreenshot Salida de pantalla completa

También podemos usar este módulo para capturar una parte de la pantalla. Solo tenemos que pasar las coordenadas requeridas a la función grab() como una tupla.

Aquí está el código para tomar una captura de pantalla de una parte específica de la pantalla.

Código de ejemplo:

import pyscreenshot

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

Tenga en cuenta que pasamos las coordenadas de una parte de la pantalla que queremos capturar en la segunda línea del código. El resto del código funciona igual que el anterior.

Aquí está la imagen que se captura.

Producción:

Captura de pantalla de Python utilizando Pyscreenshot Screen Part Output

Tenga en cuenta que este módulo, pyscreenshot, ya no se usa mucho, y preferiblemente debería optar por las dos primeras formas que discutimos para tomar una captura de pantalla en Python. Se trata de cómo puedes tomar una captura de pantalla en Python.

Conclusión

Este artículo discutió cómo podríamos tomar capturas de pantalla usando el lenguaje de programación Python. Vimos cómo podíamos usar el módulo pyautogui con la función save() y otros módulos como NumPy y OpenCV.

También aprendimos cómo podíamos usar el módulo Pillow de Python para capturar una parte de la pantalla. Además, vimos cómo podíamos usar el módulo pyscreenshot para capturar toda la pantalla y su parte.