Python を使用してスクリーンショットを撮る
- Python を使用して Pyautogui モジュールを使用してスクリーンショットを撮る
- Pillow モジュールを使用して Python を使用してスクリーンショットを撮る
- Pyscreenshot モジュールを使用して、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 と同じディレクトリにあることに注意してください。
画像のキャプチャを少し遅らせたい場合は、time
モジュールの sleep()
関数を使用できます。
Pyautogui で Numpy および Opencv モジュールを使用して、Python を使用してスクリーンショットを撮る
2 番目の方法では、pyautogui
とともにさらに 2つのモジュールを使用します。 これらは NumPy
と OpenCV
です。 save()
関数を使用して、最初のメソッドで画像を保存しました。
ただし、ここでは、これら 2つのモジュールを使用してスクリーンショットを撮り、保存します。
ターミナルで以下のコマンドを書いて、Numpy
と OpenCV
をインストールします。
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()
関数を使用してイメージをディスクに書き込みました。
これは、出力イメージがどのように見えるかです。
出力:
これは、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でスクリーンショットを撮る方法、つまり座標を設定する方法です。 Pillow
モジュールの詳細については、この ドキュメントを参照してください。
Pyscreenshot モジュールを使用して、Python を使用してスクリーンショットを撮る
Python は、スクリーンショットを撮るという唯一のタスクのために、pyscreenshot
と呼ばれるこのモジュールを提供します。 このモジュールをインストールするには、ターミナルで次のコマンドを使用します。
pip install pyscreenshot
モジュールがインストールされたら、このコードを使用して画面全体のスクリーンショットを撮ります。
コード例:
import pyscreenshot
image_demo = pyscreenshot.grab()
image_demo.save("demo_four.png")
最初に pyscreenshot
モジュールをインポートし、grab()
関数を使用して画面をキャプチャしました。 最後に、save()
関数を使用して画像を保存しました。
これが出力として得られる画像です。
出力:
このモジュールを使用して、画面の一部をキャプチャすることもできます。 必要な座標をタプルとして grab()
関数に渡すだけです。
特定の画面部分のスクリーンショットを撮るためのコードを次に示します。
コード例:
import pyscreenshot
image_demo = pyscreenshot.grab(bbox=(100, 100, 500, 500))
image_demo.save("demo_five.png")
コードの 2 行目で、キャプチャしたい画面の一部の座標を渡したことに注意してください。 コードの残りの部分は、前のものと同じように機能します。
キャプチャした画像がこちら。
出力:
このモジュール pyscreenshot
はあまり使用されていないことに注意してください。Python でスクリーンショットを撮るために説明した最初の 2つの方法を使用することをお勧めします。 Pythonでスクリーンショットを撮る方法は以上です。
まとめ
この記事では、Python プログラミング言語を使用してスクリーンショットを撮る方法について説明しました。 pyautogui
モジュールを save()
関数や NumPy
や OpenCV
などの他のモジュールと一緒に使用する方法を見てきました。
また、Python の Pillow
モジュールを使用して画面の一部をキャプチャする方法も学びました。 さらに、pyscreenshot
モジュールを使用して画面全体とその一部をキャプチャする方法を確認しました。