Python を使用してスクリーンショットを撮る

Shikha Chaudhary 2023年10月10日
  1. Python を使用して Pyautogui モジュールを使用してスクリーンショットを撮る
  2. Pillow モジュールを使用して Python を使用してスクリーンショットを撮る
  3. Pyscreenshot モジュールを使用して、Python を使用してスクリーンショットを撮る
  4. まとめ
Python を使用してスクリーンショットを撮る

Python プログラミング言語を使用すると、さまざまなタスクを実行できます。これらはすべて、単純なモジュールと短いポイントコードの助けを借りて実行できます。 Python を使用してスクリーンショットを撮ることは、そのようなタスクの 1つです。

Python は、さまざまなタスクを実行できるようにする多くのモジュールを提供します。 Python とそのライブラリを使用してスクリーンショットを撮る方法は複数あります。

この記事では、Python を使用してスクリーンショットを撮るために従う必要があるすべての手順について説明します。 さぁ、始めよう!

Python を使用して Pyautogui モジュールを使用してスクリーンショットを撮る

最初のアプローチは、Python が提供する pyauotgui モジュールを使用します。 このモジュールは、ターミナル ウィンドウで次のコマンドを使用してインストールできます。

pip install pyautogui

pyautogui モジュールは、画面全体をキャプチャするのに役立つ screenshot() 関数を使用します。 後で、save() 関数を使用してイメージを保存するか、imwrite() 関数を NumPy および OpenCV モジュールと共に使用してイメージをディスクに書き込むことができます。

これらの両方の方法を詳しく見てください。

Pyautogui モジュールの save() 関数を使用して、Python を使用してスクリーンショットを撮る

pyautogui モジュールをインストールしたら、スクリーンショットを撮る最も簡単な方法は screenshot() 関数と save() 関数を使用することです。 これらの関数を使用したコード例を次に示します。

コード例:

import pyautogui

demo_image = pyautogui.screenshot()
demo_image.save("demo_one.jpg")

まず、pyautogui モジュールをインポートします。 次に、画面の画像をキャプチャする screenshot() 関数を呼び出します。

さらに、コードの最後の行では、保存する画像の名前とともに save() 関数を使用します。 この場合、キャプチャされた画像は、ファイル名 demo_one.jpg で見つけることができます。

以下は、出力として得られる画像です。 このイメージは、Jupyter Notebook または Python と同じディレクトリにあることに注意してください。

Pyautogui save() 出力を使用した Python スクリーンショット

画像のキャプチャを少し遅らせたい場合は、time モジュールの sleep() 関数を使用できます。

Pyautogui で Numpy および Opencv モジュールを使用して、Python を使用してスクリーンショットを撮る

2 番目の方法では、pyautogui とともにさらに 2つのモジュールを使用します。 これらは NumPyOpenCV です。 save() 関数を使用して、最初のメソッドで画像を保存しました。

ただし、ここでは、これら 2つのモジュールを使用してスクリーンショットを撮り、保存します。

ターミナルで以下のコマンドを書いて、NumpyOpenCV をインストールします。

pip install numpy
pip install opencv-python

すべてのモジュールをインストールしたら、次のコードを使用する必要があります。

コード例:

# import the required modules

import numpy as x
import cv2
import pyautogui

# use pyautogui to take screenshot
demo_image = pyautogui.screenshot()

# use opencv and numpy to manipulate image
demo_image = cv2.cvtColor(x.array(demo_image), cv2.COLOR_RGB2BGR)

# save the image using opencv
cv2.imwrite("demo_two.png", demo_image)

最初に必要なモジュールをインポートしてから、screenshot() 関数を使用して画面をキャプチャしました。 次に、画像を NumPy 配列に変換し、色の順序を RGB から BGR に変更しました。

これは、OpenCV が画像を読み取るときに、色の順序がデフォルトの RGB ではなく BGR である必要があるためです。 最後に、imwrite() 関数を使用してイメージをディスクに書き込みました。

これは、出力イメージがどのように見えるかです。

出力:

Pyautogui Numpy と OpenCV 出力を使用した Python スクリーンショット

これは、Python で pyautogui モジュールを使用してスクリーンショットを撮る方法に関するものでした。 次に、同じことを行う次の方法に進みます。

pyautogui モジュールの詳細については、この ドキュメントを参照してください。

Pillow モジュールを使用して Python を使用してスクリーンショットを撮る

pyautogui モジュールを使用すると、デフォルトで画面全体がキャプチャされます。 ただし、画面の一部をキャプチャする必要がある場合は、Pillow モジュールを使用できます。

このモジュールは、ImageGrab と呼ばれる別のサブモジュールを使用して、キャプチャしたい画面の目的の領域の座標を設定できるようにします。 grab() 関数を使用して、これらの座標を指定します。

このアプローチのコードは次のとおりです。

コード例:

from PIL import ImageGrab

ss_coordinates = (200, 200, 600, 600)
demo_image = ImageGrab.grab(ss_coordinates)
demo_image.save("demo_three.jpg")

最初に Pillow モジュールと ImageGrab サブモジュールをインポートしました。 次に、キャプチャする画面の座標を設定します。

さらに、grab() 関数を使用して、これらの座標をこの関数に渡しました。 次に、キャプチャした画像を save() メソッドを使用して保存します。

これが取得したスクリーンショットです。

出力:

ピロー出力を使用した Python スクリーンショット

基本的に、これはPythonでスクリーンショットを撮る方法、つまり座標を設定する方法です。 Pillow モジュールの詳細については、この ドキュメントを参照してください。

Pyscreenshot モジュールを使用して、Python を使用してスクリーンショットを撮る

Python は、スクリーンショットを撮るという唯一のタスクのために、pyscreenshot と呼ばれるこのモジュールを提供します。 このモジュールをインストールするには、ターミナルで次のコマンドを使用します。

pip install pyscreenshot

モジュールがインストールされたら、このコードを使用して画面全体のスクリーンショットを撮ります。

コード例:

import pyscreenshot

image_demo = pyscreenshot.grab()
image_demo.save("demo_four.png")

最初に pyscreenshot モジュールをインポートし、grab() 関数を使用して画面をキャプチャしました。 最後に、save() 関数を使用して画像を保存しました。

これが出力として得られる画像です。

出力:

Pyscreenshot を使用した Python スクリーンショットの全画面出力

このモジュールを使用して、画面の一部をキャプチャすることもできます。 必要な座標をタプルとして grab() 関数に渡すだけです。

特定の画面部分のスクリーンショットを撮るためのコードを次に示します。

コード例:

import pyscreenshot

image_demo = pyscreenshot.grab(bbox=(100, 100, 500, 500))
image_demo.save("demo_five.png")

コードの 2 行目で、キャプチャしたい画面の一部の座標を渡したことに注意してください。 コードの残りの部分は、前のものと同じように機能します。

キャプチャした画像がこちら。

出力:

Pyscreenshotを使用したPythonスクリーンショット画面部分出力

このモジュール pyscreenshot はあまり使用されていないことに注意してください。Python でスクリーンショットを撮るために説明した最初の 2つの方法を使用することをお勧めします。 Pythonでスクリーンショットを撮る方法は以上です。

まとめ

この記事では、Python プログラミング言語を使用してスクリーンショットを撮る方法について説明しました。 pyautogui モジュールを save() 関数や NumPyOpenCV などの他のモジュールと一緒に使用する方法を見てきました。

また、Python の Pillow モジュールを使用して画面の一部をキャプチャする方法も学びました。 さらに、pyscreenshot モジュールを使用して画面全体とその一部をキャプチャする方法を確認しました。