【Python基礎】PyAutoGUIで自動でスクリーンショットを撮影する方法

  • URLをコピーしました!
目次

PyAutoGUI

前回は、SciPyやPandasを使ってグラフの歪度(左右非対称具合)と尖度(尖り具合)を取得する方法を紹介を紹介しました。

今回はPyAutoGUIを使って自動でスクリーンショットを撮影する方法を紹介します。

それでは始めていきましょう。

スクリーンショットを撮影する方法

PyAutoGUIでスクリーンショットを撮影するには、1.撮影する、2.保存するという2つのステップが必要です。

撮影するには「pyautogui」をインポートし、「pyautogui.screenshot()」で撮影します。

そして撮影したスクリーンショットを「.save(“ファイルパス”)」で保存します。

import pyautogui

img = pyautogui.screenshot()
img.save("pyautogui2-1.png")

実行結果
(スクリーンショットが保存されるだけなので今回は割愛します)

ちなみに「pyautogui.screenshot(“ファイルパス”)」でスクリーンショットを撮影し、保存してくれると解説しているサイトもあったのですが、私の環境では保存されませんでした。

スクリーンショットのサイズを指定する方法

スクリーンショットのサイズを指定するには「pyautogui.screenshot(region(左上のX座標, 左上のY座標, 幅, 高さ))」として指定します。

import pyautogui

img = pyautogui.screenshot(region=(300, 200, 700, 400))
img.save("pyautogui2-3.png")

実行結果
(スクリーンショットが保存されるだけなので今回は割愛します)

自動でスクリーンショットを撮影する方法

最後に自動でスクリーンショットを撮影する方法ですが、これはwhile文などの繰り返しと、timeモジュールを組み合わせます。

例えばこんな感じです。

import pyautogui
import time

n = 0
while n < 5:
    img = pyautogui.screenshot(region=(300, 200, 700, 400))
    img.save(f"pyautogui2-3-{n}.png")
    n = n + 1
    time.sleep(1)

実行結果
(スクリーンショットが保存されるだけなので今回は割愛します)

これで1秒ごとに5枚のスクリーンショットが保存されます。

これを基本として例えば1分ごとに60枚撮影すれば60分間分のスクリーンショットが撮影できることになります。

他にも画面の変化率を計算させ、ある一定以上になったら撮影するなどトリガーをつけたりもできそうです。

次回はmatplotlibのhist2dを使って2つのヒストグラムを2次元カラープロットで表示する方法を紹介します。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次