Module python Multi-Screen Shot
lundi 1 juillet 2013 à 22:34MSS pour Multi-Screen Shot.
Il s'agit d'un module python qui ne doit faire qu'une seule chose, et la faire bien : prendre des captures d'écran.
Hm... Il y a déjà la dose qui existe me direz-vous. Oui, Mais ! Je ne souhaitais pas intégrer des monstres tels que Qt, win32 ou encore wx ; et que ça soit PIL ou Pillow, aucun ne gère le multi-écran.
Le module MSS a été pensé dans le but de combler ces vides :
Tous les fichiers nécessaires se trouvent sur la page du projet (GitHub).
Ou vous pouvez l'installer simplement en utilisant pip :
Python. Et c'est tout :)
MSS est écrit en Python pur, utilisation intensive de ctypes. ctypes a été officiellement intégré à Python depuis la version 2.5, pour les versions précédentes, il existe sous forme de module externe.
Voici le tableau de compatibilité, n'hésitez pas à ouvrir un billet pour me prévenir si vous avez pu tester MSS pour les configurations non testées.
Si vous souhaitez simplement tester le fonctionnement de MSS sur votre système, téléchargez le fichier mss.py, puis :
Si vous souhaitez intégrer MSS à un de vos projet, le module dispose des classes
Chacune de ces classes contient la méthode
Juste pour le fun, j'ai mis en place une galerie d'images sans prétention afin d'exposer les captures d'écran oneshot que vous me ferez parvenir ☺
Il s'agit d'un module python qui ne doit faire qu'une seule chose, et la faire bien : prendre des captures d'écran.
Hm... Il y a déjà la dose qui existe me direz-vous. Oui, Mais ! Je ne souhaitais pas intégrer des monstres tels que Qt, win32 ou encore wx ; et que ça soit PIL ou Pillow, aucun ne gère le multi-écran.
Le module MSS a été pensé dans le but de combler ces vides :
- gèrer le multi-écran,
- tout en étant multiplate-forme,
- et en utilisant seulement du python pur, aucun module externe
Téléchargement
Tous les fichiers nécessaires se trouvent sur la page du projet (GitHub).
Ou vous pouvez l'installer simplement en utilisant pip :
pip install mss
Dépendances et pré-requis
Python. Et c'est tout :)
MSS est écrit en Python pur, utilisation intensive de ctypes. ctypes a été officiellement intégré à Python depuis la version 2.5, pour les versions précédentes, il existe sous forme de module externe.
Support
Voici le tableau de compatibilité, n'hésitez pas à ouvrir un billet pour me prévenir si vous avez pu tester MSS pour les configurations non testées.
Utilisation
Si vous souhaitez simplement tester le fonctionnement de MSS sur votre système, téléchargez le fichier mss.py, puis :
$ python mss.py
Le script prendra une capture par écran, suivi d'une capture globale.Si vous souhaitez intégrer MSS à un de vos projet, le module dispose des classes
MSSLinux
et MSSWindows
, à appeler suivant votre système. Afin d'avoir plus de détails, il est possible de passer l'argument debug=True
. Utilisez-le si vous devez reporter un bogue.Chacune de ces classes contient la méthode
save(oneshot=False)
.# Vous pouvez déterminer automatiquement quelle classe utiliser :
from platform import system
from mss import *
systems = {
'Linux' : MSSLinux,
'Windows': MSSWindows,
'Darwin' : MSSMac
}
try:
MSS = systems[system()]
except KeyError:
err = 'System "{0}" not implemented.'.format(system())
raise NotImplementedError(err)
# Ou alors simplement importer la classe qu'il vous faut :
# from mss import MSSLinux as MSS
try:
mss = MSS()
# Une capture d'écran par moniteur
for filename in mss.save():
print('File "{0}" created.'.format(filename))
# Un seul fichier pour les capturer tous :)
for filename in mss.save(oneshot=True):
print('File "{0}" created.'.format(filename))
except Exception as ex:
print(ex)
raise
Bonus
Juste pour le fun, j'ai mis en place une galerie d'images sans prétention afin d'exposer les captures d'écran oneshot que vous me ferez parvenir ☺