pyautogui スクリーンショットのアクティブウィンドウに枠線を引く
pyautogui で自動運転を作りこんでいる時、クリック操作前後のスクショを残しておきたかったので書いたヤツ。
python はやりたいことがズバズバ書けて面白い
import pyautogui from pyautogui import Point from datetime import datetime from pyrect import Box from PIL import ImageDraw PREFIX = '' SUFFIX = '' def save(position:Point=None, box:Box=None, color:tuple=(255,0,0), filename:str=None): im = pyautogui.screenshot() if filename is None: filename = "{0}{1:%Y%m%d_%H%M%S_%f}{2}.jpg".format(PREFIX, datetime.now(), SUFFIX) if position is None: (x, y) = pyautogui.position() else: (x, y) = position if box is None: box = pyautogui.getActiveWindow().box xy = (box[0], box[1], box[0]+box[2], box[1]+box[3]) draw = ImageDraw.Draw(im) for i in [5, 10]: draw.arc(xy=(x-i, y-i ,x+i, y+i), start=0, end=360, fill=color, width=3) draw.rectangle(xy, width=5, outline=color) im.save(filename) return filename if __name__=='__main__': import __main__ __main__.PREFIX = 'screenshot_' print(__main__.save())