27 ago. 2015

Obtener la resolución de la pantalla desde Python.

Este artículo se basa en un artículo en inglés sobre el tema.

Desde la línea de comandos en Linux se puede ejecutar el comando xrandr como se muestra a continuación:

ernesto@grievous:~$ xrandr | grep '*'
   1366x768      60.00*+

La resolución es de 1366x768.

El script se muestra a continuación:

#!/usr/bin/env python

#Se importa el modulo subprocess
import subprocess

#Se define un par de variables con los comandos a pasar:
cmd = ['xrandr']
cmd2 = ['grep', '*']

#Se ejecuta el comando xrandr y luego se abre una tuberia.
p = subprocess.Popen(cmd, stdout=subprocess.PIPE)

#Se ejecuta el segundo comando
p2 = subprocess.Popen(cmd2, stdin=p.stdout, stdout=subprocess.PIPE)

#Se cierra la salida estandar.
p.stdout.close()


#Obteccion de la resolucion
resolution_string, junk = p2.communicate()
resolution = resolution_string.split()[0]
width, height = resolution.split('x')
print width,height


Al ejecutar el script se obtiene:
./screencatch.py 
1366 768

Obtener resolución con gtk con el siguiente script:

#!/usr/bin/env python

#Se importa gtk
import gtk

#Se captura el ancho y alto 
width = gtk.gdk.screen_width()
height = gtk.gdk.screen_height()

#Se muestra en la consola el resultado
print width,height

Al ejecutar el script se obtiene:
 ./screencatch2.py 
1366 768

Obtener la resolución con PySide/PyQT con el siguiente script:

#!/usr/bin/env python
#Importar QtGui de PySide
#para solo PyQt se cambia a
#from PyQt4 import QtGui

from PySide import QtGui

#Se crea la instancia de la aplicacion
app = QtGui.QApplication([])
#Se captura la resolucion y se muestra  en la consola
screen_resolution = app.desktop().screenGeometry()
width, height = screen_resolution.width(), screen_resolution.height()

print width,height

El resultado de ejecutar el script  es:

./screencatch3.py 
1366 768


En el artículo mencionado se muestra como obtener la información con wxPython y en un enlace en el artículo como obtener la información desde windows y desde MacOS.


Publicar un comentario en la entrada

AddThis