【Python(PyAutoGUI)で作る業務自動化アプリ入門】スクリーンショット自動化、画像検索機能を使ってみる

PyAutoGUI
けんろう
けんろう

PyAutoGUIでは、PC画面のスクリーンショットを自動的に撮ったり、指定した画像を検索する機能で、業務自動化アプリが作れます。 

Pythonライブラリである、PyAutoGUIを使い、スクリーンショットを撮ったり、指定した画像を検索して座標を取得することができます。この機能を使えば、電卓アプリを自動操作するようなアプリが作れます。

この記事に載っているサンプルコードをコピーして、Pythonで実行すれば、簡単に動きを確認できますので、是非試してみて下さい。

この記事では、初心者にもわかりやすいように、各処理の内容を、サンプルコード内にコメントとして載せています。

【無料オンライン】ゼロから始めるPythonプログラミング入門講座(週5開催) テックジム
スポンサーリンク

PyAutoGUIとは

PyAutoGUIは、マウスやキーボード操作を制御するためのPythonのモジュールです。

PyAutoGUIは、以下のことから,非常におすすめなツールです。
・無料で使えること
・Pythonで書けること
・画像認識機能が使える

公式サイト

公式ドキュメントは、以下です。

インストール方法

pip install pyautogui

スクリーンショット制御関数

関数一覧

内容関数サンプル例備考
スクリーンショットを撮るscreenshot(
‘保存するファイル名’,
region=(左上座標, 幅, 高さ)
)
> im = pyautogui.screenshot(‘my_screenshot.png’)
# スクリーンショットを撮り、
 my_screenshot.pngという名前で保存する

> im = pyautogui.screenshot(‘my_screenshot.png’, region=(0,0, 300, 400))
#(0,0)を左上として幅=300、高さ=400
 の領域のスクリーンショットを撮り、
 my_screenshot.pngという名前で保存する
画面座標を取得する
(左上座標)
locateOnScreen(
‘検索する画像ファイル名’
)
> testlocation = pyautogui.locateOnScreen(‘test1.png’)
> testlocation
Box(left=1416, top=562, width=50, height=41)
画面座標を取得する
(中心座標)
center(
‘検索する画像ファイル名’
)
> testlocation = pyautogui.locateOnScreen(‘test1.png’)
> testpoint = pyautogui.center(testlocation)
> testpoint
Point(x=1441, y=582)
【AIジョブカレ】人工知能技術専門プログラミングスクール

今回作成するアプリ

・画面のスクリーンショットを撮る
・電卓を自動的に操作する(2+6=を計算する)

準備

準備1:画像を用意する

以下の画像を、指定するファイル名で保存してください。
画像の上で、右クリックすると、保存できます。

2.png

6.png

plus.png

equal.png

電卓アプリを起動する

サンプルコード

# https://pyautogui.readthedocs.io/en/latest/screenshot.html

#!usr/bin/env python
# -*- coding: utf-8 -*-

import pyautogui

# 画面のスクリーンショットを撮り、my_screenshot.pngというファイル名で保存する
im2 = pyautogui.screenshot('my_screenshot.png')

# (0,0)を左上として幅=300、高さ=400の領域で、画面のスクリーンショットを撮り、my_screenshot2.pngというファイル名で保存する
im3 = pyautogui.screenshot('my_screenshot2.png',region=(0,0, 300, 400))

# 電卓の「2」ボタンの座標を検索する
button_2_location = pyautogui.locateOnScreen('2.png')
# 電卓の「6」ボタンの座標を検索する
button_6_location = pyautogui.locateOnScreen('6.png')
# 電卓の「+」ボタンの座標を検索する
button_plus_location = pyautogui.locateOnScreen('plus.png')
# 電卓の「=」ボタンの座標を検索する
button_equal_location = pyautogui.locateOnScreen('equal.png')

# 電卓の「2」ボタンの座標を表示する
print(button_2_location)
print(button_2_location[0])
print(button_2_location.top)

# 電卓の「2」ボタンの中心座標を検索する
button_2_point = pyautogui.center(button_2_location)
button_2x, button_2y = button_2_point

# 電卓の「6」ボタンの中心座標を検索する
button_6_point = pyautogui.center(button_6_location)
button_6x, button_6y = button_6_point

# 電卓の「+」ボタンの中心座標を検索する
button_plus_point = pyautogui.center(button_plus_location)
button_plusx, button_plusy = button_plus_point

# 電卓の「=」ボタンの中心座標を検索する
button_equal_point = pyautogui.center(button_equal_location)
button_equalx, button_equaly = button_equal_point

# 電卓の「2」ボタンの座標を表示する
print(button_2_point)
print(button_2_point.x)

# 電卓の「2」ボタンをクリックする
pyautogui.click(button_2x, button_2y)
# 電卓の「+」ボタンをクリックする
pyautogui.click(button_plusx, button_plusy)
# 電卓の「6」ボタンをクリックする
pyautogui.click(button_6x, button_6y)
# 電卓の「=」ボタンをクリックする
pyautogui.click(button_equalx, button_equaly)

実行すると、

・my_screenshot.pngが生成される → PC画面のスクリーンショット

・my_screenshot2.pngが生成される → PC画面の一部のスクリーンショット

・電卓アプリのボタンが、「2」→「+」→「6」→「=」の順番で押下され、
 電卓アプリに、8が表示される。

まとめ

今回は、Pythonライブラリである、PyAutoGUIを使い、スクリーンショットを撮ったり、電卓アプリを自動操作するアプリの作り方を紹介しました。

コメント

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