PR

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

PyAutoGUI
スポンサーリンク
けんろう
けんろう

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

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

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

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

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)

今回作成するアプリ

・画面のスクリーンショットを撮る
・電卓を自動的に操作する(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を使い、スクリーンショットを撮ったり、電卓アプリを自動操作するアプリの作り方を紹介しました。

オススメ

M5Stack

小さな筐体の中に、ディスプレイ、ボタン、無線通信モジュールなど、必要な機能が詰め込まれたモジュールです。メーカから提供されるライブラリも豊富で、初心者の初めてのプログラミングにぴったりです。5 cm四方のベーシックなモデルの他、小型スティック型のモデル、更に小型のATOMシリーズ、M5Stampシリーズなどがあります。

オススメ

デイトラは総受講者数30,000人超の、Webスキルを学べる国内最大規模のオンラインスクールです。

動画コンテンツを見ながら自習を行い、わからないところをチャットツールで質問を行うという形式で学習を行います。そのため、時間・場所を選ばず自分のペースで学習できます。

デイトラ最大の特徴はフリーランスや副業を意識したコースを中心としていることです。Web系フリーランスに必要なスキルを学べるコースを備えており、実際に多数の受講生がフリーランスとなっています。

<オススメポイント>

1. フリーランス/副業を意識したカリキュラム

デイトラは運営陣が全員元フリーランスで、フリーランス向けメディア「東京フリーランス」の運営も行っています。そのためフリーランスに求められるスキル感や現在の流行、そして案件獲得の方法にまで精通しており、カリキュラムにもそのノウハウを反映しています。

「何かを作れるようになる」といった漠然としたゴールではなく、「実際に仕事を受けられるレベルに達する」ことをゴールとしているため、カリキュラムは非常にハイレベルです。

■提供中のコース一覧
・Web制作コース
・Webアプリ開発コース
・Webデザインコース
・Shopifyコース
・動画制作コース
・Pythonコース
・Webマーケティングコース
・AIライティングコース
・Javaコース

2. 受講生による好意的な口コミ

デイトラはTwitter・ブログともに受講生による好意的な口コミが非常に多いです。

カリキュラムやウェビナーなどのサービスの質に満足する声や、実際に案件を獲得できた・転職に成功したなどの成果報告が多数見られます。実際に受講した方の満足する声が多いからこそ、それを見た人が安心して受講に踏み切られています。

デイトラが一年間で8000人以上から受講してもらえたのも、口コミで人が人を呼ぶ構造になっているのが最大の要因です。

3. 圧倒的なコストパフォーマンス

デイトラは一年間のサポート付きで99,800円と格安でサービスを提供しています(例:Web制作コース)。一般的なプログラミングスクールが数十万円の受講料でサポート期間も三ヵ月ほどであることが多いため、それらに比べて非常に安価な価格設定となっています。

さらに、卒業後はカリキュラムの閲覧が不可になるスクールも多い中、デイトラは一度受講したらその後もカリキュラムを見放題です。カリキュラムは随時アップデートされるため、「常に最新の情報を提供してくれる教材」として活用される方も多いです。

デイトラは完全オンラインで教室を持たないスクールで、受講生の口コミによる集客が中心となっています。そのため固定費・広告費を抑え、格安でサービス提供を行えています。

デイトラ

コメント

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