Capturas de Pantalla con Python
Introducción:
¿Nunca a pensado en tomar capturas de pantalla, con un sencillo script de Python?
Hoy te enseñare a como a tomar capturas de pantalla con ayuda de Python y la librería MSS.

Hay muchas librerías que nos pueden ayudar a cumplir este objetivo, pero llevo un tiempo usando MSS y me e encariñado un poco. Para descargar la librería MSS debes entrar en el siguiente enlace: Descargar MSS.
Una vez descargado MSS, podemos comenzar a escribir codigo.
Mi primer Screenshot con Python.
Muy bien, analicemos cuidadosamente este código. Lo primero que hago es importa a MSS, luego usamos la sentencia with, screen sera nuestro objeto al cual usaremos para llamar a shot() el cual hace la captura de pantalla, así de fácil tomamos nuestra primera captura de pantalla, si vas a la carpeta actual del script, podrás ver un archivo png.
A continuación, te muestro mi screenshot:
Ese seria mi resultado, muy fácil y sencillo,¿Ya lo intentaste?.
SI se dan cuenta, el nombre del screenshot es "monitor-1", esto es por defecto, si tomáramos otra captura de pantalla el archivo seria sustituido y tendríamos la captura tomada recientemente, esto en ocasiones es un problema, ¿como lo solucionamos? a continuación te muestro como:
Como pueden observar el código no cambio mucho, lo que hago es pasarle un argumento a shot, le pasamos el argumento "output" al cual le diremos que nombre queremos que lleve nuestra captura de pantalla, y no se nos puede olvidar asignar el formato de imagen, el cual puede ser png o jpg, todo depende de ti.
Si ya asignaste el argumento output al método shot, ya puedes probar el código, y ver el resultado, mi resultado es el siguiente:
Ahora hagamos algo un poco más interesante. Todas la capturas de pantalla son fullscreen, pero esto lo podemos cambiar, podemos tomar solo una parte de nuestro monitor, a continuación te muestro como.
Analicemos el código: Lo primero que hacemos es importar la librería mss y mss.tools, luego hacemos uso de la sentencia with. Declaramos una variable con el identificador "monitor" la cual almacenara un diccionario con cuatro elementos los cuales le dirá a MSS cual sera la parte del monitor que queremos capturar. Declaramos una variable con el identificador "output" el sera el nombre de el screenshot. Luego capturamos los datos con grab. Y por ultimo guardamos en el archivo de imagen. Mi resultado seria el siguiente:

Bueno, ahora es tu turno de experimentar y lograr grandes cosas, te invito a que compartas tu experiencia dejando un buen comentario. Mi nombre es Luis y fue un placer compartir mis conocimientos con todos ustedes :D.
-
Saludos desde Venezuela 😀
-
Este comentario ha sido eliminado por el autor.
-
Buenas Don Luis.
Quisiera saber si usted tendrá ejemplos de como imprimir en Python y Jasper, para una aplicación de escritorio, ya que al parecer la gente el tema de impresión no lo publica. O bien otro tipo de reporteador, pero donde se diseñe el reporte, no como reportlab o pandas.Gracias
Roberto
Costa Rica. -
Buenas noches Don Luis.
Realicé el ejemplo de los calendarios, pero al ejecutar el proceso para el html, me da el siguiente error.Traceback (most recent call last):
File "CALENDARIO1", line 34, in
html.write(calendario_2012)
TypeError: write() argument must be str, not HTMLCalendarEste es mi código.
import calendar
#Instancia de HTMLCalendar
cl = calendar.HTMLCalendar()
#Definimos el año del calendario
calendario_2012 = calendar.HTMLCalendar(2012)#Creamos un archivo con formato html en donde estará el contenido HTML
with open("./calendario_2012.html") as html:
html.write(calendario_2012)
html.close()Gracias.
Roberto
Costa Rica.
Deja una respuesta

Cordial saludo Luis Salcedo; muchas gracias por todo lo que has compartido; es bien interesante.
Un saludo desde Medellín, Colombia.