PyAutoGUIでスクリーンショットを撮影・保存する方法:基本と応用例を解説

pyautogui アイキャッチ画像

PyAutoGUIの概要

PyAutoGUIは、Pythonを使用してデスクトップ操作を簡単に自動化できる便利なライブラリです。Windows、macOS、Linuxなど、さまざまなプラットフォームで動作し、反復的なタスクを効率的に処理するために設計されています。

PyAutoGUIとは?

PyAutoGUIは、マウスやキーボード操作をプログラムで制御し、スクリーンショットや画像認識を利用した柔軟な操作を可能にします。

以下のような機能が利用できます:

  • マウスの移動、クリック、ドラッグ操作
  • キーボード入力、ホットキーの送信
  • スクリーンショットの取得
  • 画像認識を用いた特定のUI要素操作

PyAutoGUIのメリット

PyAutoGUIを使用することで、日々の単純作業を簡単に自動化できます。

特に以下の点で優れています:

  • 簡単な操作性: 直感的なAPI設計で、プログラミング初心者にも優しい。
  • 環境に依存しない: Windows、macOS、Linuxに対応し、マルチプラットフォームで利用可能。
  • 拡張性: 他のPythonライブラリと連携することで、さらに高度な自動化が可能。

PyAutoGUIと他の自動化ツールとの違い

PyAutoGUIは、RPAツール(例: UiPath)やVBAと比べても独自の強みを持っています。

特徴 PyAutoGUI RPAツール VBA
プラットフォーム Windows, macOS, Linux 主にWindows Windows(Office環境が必須)
操作対象 デスクトップ全体(全アプリケーション) アプリケーション全般(専用コネクタ対応) Microsoft製品中心
画像認識 可能(UIに依存しない操作) 可能(高度な認識機能あり) 不可
カスタマイズ性 Pythonを活用した柔軟なスクリプト作成 ビジュアル操作が中心 マクロによる記述が中心
コスト 無料(オープンソース) 有料(サブスクリプション型が主流) Microsoft Officeのライセンスが必要

インストール方法

PyAutoGUIは、デスクトップ操作の自動化を簡単に行うための便利なライブラリです。

スクリーンショット機能を含むすべての機能を使用するには、必要なライブラリを正しくインストールする必要があります。

このセクションでは、インストール手順を解説します。

PyAutoGUIのインストール

PyAutoGUIをインストールするには、以下のコマンドを実行します:

pip install pyautogui

このコマンドで、PyAutoGUIとその基本的な依存ライブラリが自動的にインストールされます。

スクリーンショット機能のための追加ライブラリ

PyAutoGUIのスクリーンショット機能を使用するには、画像処理ライブラリPillowが必要です。PyAutoGUIのインストール時に自動的にインストールされる場合もありますが、インストールされていない場合は以下のコマンドを実行してください:

pip install pillow

Pillowは、PyAutoGUIがスクリーンショットを取得し、画像として保存するために使用されます。


PyAutoGUI Documentation (公式ドキュメント)

PyAutoGUIでスクリーンショットを撮る際に使用する主要関数

PyAutoGUIでは、スクリーンショットを撮るためのシンプルで使いやすい関数が用意されています。このセクションでは、スクリーンショット関連の主要な関数を解説し、基本的な使い方を紹介します。

screenshot(): スクリーンショットを撮る

screenshot()関数は、画面全体または特定の領域のスクリーンショットを撮るために使用されます。

基本構文:

pyautogui.screenshot(imageFilename=None, region=None)
パラメータ名 説明
imageFilename スクリーンショットを保存するファイル名(オプション)。指定しない場合、画像はPillowオブジェクトとして返されます。
region スクリーンショットを撮る領域を指定するタプル(x, y, width, height))。デフォルトは画面全体。
imageFilenameで指定できるファイル形式
ファイル形式 拡張子 特徴
PNG .png 圧縮率が高く、画質を劣化させずに保存できる。透過もサポート。
JPEG .jpg, .jpeg ファイルサイズを小さくできるが、画質が若干劣化する。透過は非対応。
BMP .bmp 非圧縮形式で、画質が良いがファイルサイズが大きい。
GIF .gif 色数が少ない場合に適しており、アニメーションもサポート(ただし静止画保存の場合)。
TIFF .tiff 高品質な画像保存に適しており、圧縮・非圧縮の両方に対応。

ファイルサイズが大きい。

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

import pyautogui

# 画面全体をキャプチャして保存
pyautogui.screenshot("screenshot.png")
print("スクリーンショットを保存しました")

特定の領域をキャプチャ

import pyautogui

# 画面の左上 (0, 0) から幅500px、高さ400pxの領域をキャプチャ
region_screenshot = pyautogui.screenshot(region=(0, 0, 500, 400))
region_screenshot.save("region_screenshot.png")
print("特定の領域を保存しました")

取得したスクリーンショットを操作

screenshot()は、Pillowオブジェクトを返します。

これを使用して、画像の加工やファイルへの保存が可能です。

Pillowでスクリーンショットを加工

from PIL import Image
import pyautogui

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

# 特定領域をトリミング
cropped = screenshot.crop((100, 100, 300, 300))
cropped.save("cropped_screenshot.png")
print("トリミングしたスクリーンショットを保存しました")

便利な活用方法

以下は、スクリーンショット機能を使った便利な活用方法です。

  • UIテストの自動化
    • アプリケーションやウェブサイトの画面遷移や表示内容を自動で確認。
    • 具体的な手順:
      • 画面遷移後にスクリーンショットを撮る。
      • 期待される画像と比較して一致を確認。
  • エラーログの記録
    • エラーが発生した瞬間の画面を記録し、問題解決の材料として保存。
    • 具体的な手順:
      • エラー処理の中でスクリーンショットを撮影。
      • エラーメッセージやタイムスタンプとともに保存。
  • 定期的な画面監視
    • サーバーダッシュボードや監視ツールの画面を定期的に記録して異常を検知。
    • 具体的な手順:
      • 指定した間隔でスクリーンショットを撮影。
      • 過去のスクリーンショットと比較し、異常を検出。

関連記事

RPA--PYAUTOGUI
「RPA--PYAUTOGUI」の記事一覧です。

コメント

タイトルとURLをコピーしました