[Python] [Windows] Faites une capture d'écran avec Python

J'ai étudié comment automatiser les captures d'écran sous Windows. (Utilisez Python cette fois)

Utiliser PIL

Préparation préalable

PIL(Pillow)Installation de


$ pip install Pillow

Il y avait aussi un pyscreenshot, mais pour Windows, l'implémentation est la même car il utilise PIL en interne après tout.

Installer pyscreenshot


$ pip install pyscreenshot

Exemple d'implémentation

Exemple de capture d'écran avec PIL


from PIL import ImageGrab

# full screen
ImageGrab.grab().save("PIL_capture.png ")

#Découpage dans la zone spécifiée
ImageGrab.grab(bbox=(100, 100, 200, 200)).save("PIL_capture_clip.png ")

Avec l'implémentation ci-dessus, vous pouvez effectuer une capture d'écran, un découpage et une sortie en plein écran. Puisque PIL est multifonctionnel, il prend également en charge le traitement d'image et l'enregistrement dans un autre format (jpeg, etc.), mais je pense que vous devriez le vérifier séparément.

Cependant, il y avait deux problèmes avec cette implémentation.

référence

The ImageGrab Module pyscreenshot 0.4.2 : Python Package Index

Utilisez du sélénium

C'est un problème que l'application PIL ne peut pas être spécifiée, mais si vous souhaitez spécifier un navigateur Web, il semble y avoir un moyen d'utiliser Selenium. (Non vérifié car il ne correspond pas à mon cas d'utilisation)

Capture d'écran avec Selenium (édition Python) --Qiita Faites fonctionner Firefox avec Selenium à partir de python et enregistrez les captures d'écran --Qiita How to take partial screenshot with Selenium WebDriver in python? - Stack Overflow

Utiliser pywin auto

Une autre façon de faire une capture d'écran de n'importe quelle application est d'utiliser pywinauto.

Préparation préalable

Installation de pywinauto


$ pip install pywinauto

Exemple d'utilisation

Exemple d'utilisation de pywinauto


# coding: UTF-8

from pywinauto import application
from time import sleep

app = application.Application().start("notepad.exe")

sleep(1)
app[u'Sans titre.*Bloc-notes'].CaptureAsImage().save('window.png')

Vous avez maintenant une capture d'écran de n'importe quelle application (Notepad dans l'exemple). En guise de mise en garde, CaptureAsImage ne récupère pas directement le tampon de dessin, il semble qu'il ne coupe que la zone où se trouve la fenêtre, et dans l'exemple ci-dessus, c'est avant le démarrage à moins que Sleep ne soit inséré. La capture est terminée.

référence

Pywinauto - pywinauto What is pywinauto — pywinauto 0.6.0 documentation Cliquez sur le menu GUI dans pywinauto: Salaryman, PC et moi

Recommended Posts

[Python] [Windows] Faites une capture d'écran avec Python
Prendre une capture d'écran en Python
Appuyez sur une commande en Python (Windows)
[Python] Prenez une capture d'écran
Créer une fonction en Python
Créer un dictionnaire en Python
Jusqu'à dessiner un graphe 3D avec Python dans Windows10
Créer un bookmarklet en Python
Dessinez un cœur en Python
Installation de Python en 2 lignes @Windows
Probablement dans un serpent Nishiki (Titre original: Peut-être en Python)
Ecrire une dichotomie en Python
[Python] Afficher plusieurs fenêtres avec Tkinter
[python] Gérer les fonctions dans une liste
Créer un conteneur DI avec Python
Dessinez une matrice de diagramme de dispersion avec python
Obtenez une capture d'écran Web avec python
Ecrire des algorithmes A * (A-star) en Python
Créer un fichier binaire en Python
Windows10: Installation de la bibliothèque MeCab pour python
Résoudre ABC036 A ~ C avec Python
Ecrire un graphique à secteurs en Python
Ecrire le plugin vim en Python
Écrire une recherche de priorité en profondeur en Python
Implémentation d'un algorithme simple en Python 2
Résoudre ABC037 A ~ C avec Python
Exécutez un algorithme simple en Python
Dessinez un diagramme CNN en Python
Créer une chaîne aléatoire en Python
Lors de l'écriture d'un programme en Python
Concurrence avec VS Code Créez un environnement Python pour les professionnels sous Windows
Jetez un œil à l'arborescence des exceptions intégrée dans Python 3.8.2
Générer une collection de première classe en Python
Fonctionnement de la souris à l'aide de l'API Windows en Python
Utiliser l'impression dans l'expression lambda Python2
Un client HTTP simple implémenté en Python
Faites une visite Euler non récursive en Python
Utilisation de venv dans un environnement Windows + Docker [Python]
J'ai fait un programme de gestion de la paie en Python!
Précautions lors du décapage d'une fonction en python
Afficher une liste d'alphabets en Python 3
Essayez d'envoyer un paquet SYN en Python
Essayez de dessiner une animation simple en Python
Créer une application GUI simple en Python
Création d'un environnement Python 3.6 avec Windows + PowerShell
[Python] [Windows] Communication série en Python à l'aide de DLL
Ecrire une courte définition de propriété en Python
Dessiner un cœur avec Python Partie 2 (SymPy Edition)
Exécuter l'interpréteur Python dans le script
Comment obtenir stacktrace en python
Ecrire un programme de chiffrement Caesar en Python
Hash en Perl est un dictionnaire en Python
Scraping de sites Web à l'aide de JavaScript en Python
Ecrire une méthode de cupidité simple en Python
Lancer une application Flask dans Python Anywhere
Obtenez un jeton pour conoha avec python
Résoudre ABC165 A, B, D avec Python
[GPS] Créer un fichier kml avec Python