Pythonでスクリーンショットを撮る方法

提供: Python入門
移動: 案内検索
スポンサーリンク

Pythonのpyautogui(PyAutoGui)モジュールを使用すると簡単にスクリーンショットを撮ることができます。

読み方

PyAutoGui
ぱい おーと じーゆーあい

概要

pyautogui は、クロスプラットフォームの GUI 自動化 Python モジュールです。プログラマティックにマウスとキーボードをコントロールします。 いろいろなことをプログラムから実行できます。

  • キーボードのイベントを送信できる
  • マウスのイベントを送信できる
  • アラートを表示できる

pyautoguiを利用して、スクリーンショットを取得することもできます。

Linux, MacOS, Windows などの環境で利用できます。

XLibを使ってプログラミングして、Xのイベントで遊んだことがある方なら想像されていると思いますが、Linuxであれば、XLibを利用して操作します。

インストール

sudo apt install python-xlib scrot
pip install pyautogui

ソースコード

#! /usr/bin/env python   
# -*- coding: utf-8 -*-  
# vim:fenc=utf-8         
#                        
# Copyright © 2015 kaoru <kaoru@bsd>
import pyautogui         
s = pyautogui.screenshot()
s.save('screenshot1.png')

実行例

カレントディレクトリに png ファイルが作成されます。

$ python pyautogui_screenshot1.py

エラー

ImportError: No module named Xlib.display

ImportError: No module named Xlib.display

がでたら python-xlib をインストールします。

sudo apt install python-xlib

NotImplementedError: "scrot" must be installed...

<class 'Xlib.protocol.request.QueryExtension'>
Traceback (most recent call last):
  File "pyautogui_screenshot1.py", line 7, in <module>
    s = pyautogui.screenshot()
  File "/usr/local/lib/python2.7/dist-packages/pyscreeze/__init__.py", line
  220, in _screenshot_linux
    raise NotImplementedError('"scrot" must be installed to use screenshot
    functions in Linux. Run: sudo apt-get install scrot')
NotImplementedError: "scrot" must be installed to use screenshot functions in
Linux. Run: sudo apt-get install scrot

がでたら scrot をインストールします。

sudo apt install scrot

関連項目




スポンサーリンク