Si bien la librería estándar de Python no provee ningún método para capturar la pantalla, podemos lograrlo con ayuda de algunos módulos de terceros.
Opción 1
El primero de ellos es PyAutoGUI, un módulo multiplataforma para automatizar tareas. Podemos capturar la pantalla con tres líneas de código.
import pyautogui # Capturar pantalla. screenshot = pyautogui.screenshot() # Guardar imagen. screenshot.save("screenshot.png")
PyAutoGUI utiliza internamente Pillow, una de las librerías de manejo de imagenes más populares del lenguaje, por lo que screenshot
es una instancia de PIL.Image.Image
.
# Mostrar imagen. screenshot.show()
Para capturar únicamente una porción de la pantalla, empleamos el parámetro region
, una tupla con la estructura (X, Y, Ancho, Alto)
.
# Capturar una porción de la pantalla. screenshot = pyautogui.screenshot(region=(50, 50, 400, 300))
La forma más sencilla de instalar el módulo junto a todas sus dependencias es vía pip.
pip install pyautogui
Para poder ejecutar correctamente PyAutoGUI en Linux, además, deben instalarse las siguientes dependencias.
pip install python3-xlib
sudo apt-get install scrot
sudo apt-get install python3-tk
sudo apt-get install python3-dev
En Max OS se requiere lo siguiente:
pip install pyobjc-core
pip install pyobjc
En Windows el paquete no requiere ninguna instalación adicional.
Opción 2
Otro paquete similar a PyAutoGUI es AutoPy, un toolkit de automatización plataforma escrito en C. Su API es mucho más elegante, simple y agradable que la del módulo anterior, pero por el momento soporta únicamente Python 2 (razón por la cual pasa a ser la opción número dos).
Capturar la pantalla es igualmente de sencillo:
import autopy screenshot = autopy.bitmap.capture_screen() screenshot.save("screenshot.png")
La función capture_screen
puede tomar una región determinada de la pantalla, con la estructura ((X, Y), (Ancho, Alto))
.
screenshot = autopy.bitmap.capture_screen(((50, 50), (400, 300)))
Para Windows, puedes encontrar el instalador de AutoPy en este enlace.
Para el resto de los sistemas operativos, la forma recomendada de instalar AutoPy es:
easy_install autopy
También es posible instalarlo vía pip.
pip install autopy
O bien descargar el código de fuente desde este enlace y ejecutar:
python setup.py build
python setup.py install
Opción 3
pyscreenshot es un módulo creado específicamente para llevar a cabo esta tarea, disponible para Python 2 y 3.
Su única dependencia es PIL/Pillow. En Linux, además, necesita alguno de los siguientes paquetes: scrot, ImageMagick, PyGTK, PyQt o wxPython. En Mac OS X, requiere Quartz o screencapture.
im = pyscreenshot.grab() im.save("screenshot.png")
La función siempre retorna una instancia de PIL.Image.Image
.
También puede capturar únicamente una porción de la pantalla.
im = pyscreenshot.grab(bbox=(50, 50, 450, 350))
Nótese que la estructura de bbox
es (X1, Y1, X2, Y2)
.
Para instalar, simplemente:
pip install pyscreenshot
En distribuciones de Linux, también es posible:
easy_install pyscreenshot
Curso online 👨💻
¡Ya lanzamos el curso oficial de Recursos Python en Udemy!
Un curso moderno para aprender Python desde cero con programación orientada a objetos, SQL y tkinter
en 2024.
Consultoría 💡
Ofrecemos servicios profesionales de desarrollo y capacitación en Python a personas y empresas. Consultanos por tu proyecto.
REIVIN says:
nesecito ayuda , como poder installar el pyAutogui
reivin says:
puedo ayudarte a instalarlo?
74lg0 says:
pip3 install pyautogui
Beto says:
Hola y para grabar video de la pantalla del pc como le hago con python 3
Recursos Python says:
Hola, véase http://foro.recursospython.com/showthread.php?tid=108. Saludos.