見出し画像

Pyrhonで範囲を指定して、スクリーンショットをとる

Pyrhonで範囲を指定して、スクリーンショットをとる

PyAutoGuiをつかう


import pyautogui

screenshot = pyautogui.screenshot()

screenshot.save("screenshot.png")

screenshot_regon = pyautogui.screenshot(region=(0,0,300,400))

screenshot_regon.save("screenshot_region.png")

Pillowをつかう


from PIL import ImageGrab

screenshot_regon = ImageGrab.grab(bbox=(0,0,300,400))

screenshot_regon.save("screenshot_.pillow.png")

OpenCVをつかう

PIL(Python Image Library) で取得したスクリーンショットをNumpy配列に変換し、OpneCVなどの他のライブラリで画像処理を可能にしています。
screenshot_npには、画像のピクセルデータが格納されます。
cv2.cvtColor()で画像の色空間の変換を行っています。RGBは一般に多くのライブラリで使用される色順番です。
cropped_image = screenshot_rgb[0:400, 0:300]は、Numpyのスライシング機能を利用して、行0~399 列0~299を指定しています。

import cv2
import numpy as np
from PIL import ImageGrab

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

# NumPy配列に変換
screenshot_np = np.array(screenshot)

# BGRからRGBに変換
screenshot_rgb = cv2.cvtColor(screenshot_np, cv2.COLOR_BGR2RGB)

# 特定の範囲を指定して切り取る
cropped_image = screenshot_rgb[0:400, 0:300]

# スクリーンショットを保存
cv2.imwrite("screenshot_opencv.png", cropped_image)


いいなと思ったら応援しよう!