非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】スクリーンショットを撮る方法(Windows編)

   

Pythonを使えば、PC画面のスクリーンショットを簡単に撮ることができます。特に、pyautogui や mss などのライブラリを活用すると、画面全体だけでなく特定のウィンドウのみをキャプチャすることも可能です。本記事では、Pythonでスクリーンキャプチャを撮る方法を具体的なコードとともに解説します。アクティブウィンドウのみをキャプチャする方法も紹介するので、効率的な画面撮影をしたい方はぜひ参考にしてください。

画面全体のスクリーンショット

まずはライブラリをpip installコマンドでインストールします。

pip install pyautogui
  

 

以下が画面全体をスクリーンショットするプログラムです。

import pyautogui

screenshot = pyautogui.screenshot()
screenshot.save("screenshot.png")  # スクリーンショットを保存
 

 

特定の領域をキャプチャする

画面の特定の場所を切り抜くようにキャプチャする方法です。

import pyautogui

# キャプチャしたい領域を指定 (左上 x, 左上 y, 幅, 高さ)
region = (100, 200, 500, 300)

# スクリーンショットを撮影
screenshot = pyautogui.screenshot(region=region)

# 画像を保存
screenshot.save("screenshot2.png")
 

 

アクティブウィンドウのスクリーンショット

アクティブウィンドウのみのスクリーンショットを撮ることも可能です。pygetwindowでアクティブウィンドウの位置とサイズを取得し、それをpyautogui でキャプチャします。

まずはライブラリのインストール。(pyautoguiはインストール済みを想定)

pip install pygetwindow
 

 

こちらがソースコードです。

import pyautogui
import pygetwindow as gw

# アクティブウィンドウを取得
win = gw.getActiveWindow()

if win:
    # ウィンドウの位置とサイズを取得
    left, top, width, height = win.left, win.top, win.width, win.height

    # 指定範囲をスクリーンショット
    screenshot = pyautogui.screenshot(region=(left, top, width, height))
    screenshot.save("active_window.png")
else:
    print("アクティブウィンドウが見つかりません")
 

 

スポンサーリンク

 - Python