# 사용자가 입력한 keyboard값을 받아서 처리할 수 있는 것(후킹)
# 그러기 위해서 필요한 keyboard모듈
import keyboard
import time
from PIL import ImageGrab
def screenshot():
# 2020년 6월 1일 10시 20분 30초 -> _20200601_102030
curr_time = time.strftime("_%Y%m%d_%H%M%S")
img = ImageGrab.grab()
img.save("image{}.png".format(curr_time)) # image_20200601_102030 .png
keyboard.add_hotkey("F9", screenshot) # 사용자가 F9번을 입력했을 때 screenshot 함수를 동작
# 복합적인 키로 해도 동작
# keyboard.add_hotkey("ctrl+shift+s", screenshot)
keyboard.wait("esc") # 사용자가 esc를 누르기 전까지 프로그램 수행
자동 스크린샷 기능을 구현하기 위해서는 우선 세가지의 모듈이 필요하다
keyboard
사용자가 keyboard를 입력헀을 때 특수한 동작을 실행시키기 위함
time
파일이름을 저장할 때, 중복되지 않도록 현재의 시간을 불러와서 파일명에 붙혀주기 위함
PIL(python image library)
이미지 프로세싱을 할 수 있게 주는 라이브러리이다.
그 중에서 ImageGrab() 현재 화면을 스크린샷을 찍는 기능을 한다.
동작방법
keyboard.add_hotkey("F9", screenshot)
keyboard.add_hotkey()를 이용해서 사용자가 "F9"을 눌렀을 때 , screenshot이라는 함수를 실행 시킨다.
screenshot함수
def screenshot():
# 2020년 6월 1일 10시 20분 30초 -> _20200601_102030
curr_time = time.strftime("_%Y%m%d_%H%M%S")
img = ImageGrab.grab()
img.save("image{}.png".format(curr_time))
1.time.strftime()을 이용해서 현재의 시간을 변수에 저장시킨다.
2.ImageGrab.grab()을 이용해서 현재 화면을 스크린샷을 한다.
3.스크린샷한 이미지를 "image{}.png".format(현재시간)"이라는 이름으로 현재 프로젝트 파일 위치에 생성한다.
keyboard.wait()
keyboard.wait("esc")
keyboard.wait()를 이용해서 사용자가 "esc"를 누르게되면 그 때 프로그램이 종료된다.
'IT 공부 > python' 카테고리의 다른 글
[ python ] email 자동화 (0) | 2020.12.26 |
---|---|
[ python ] Web Scraping 총정리 (1) | 2020.12.14 |
[ python ] Tkinter project (0) | 2020.12.11 |
[ python ] 프로젝트 starcraft 개인공부 (0) | 2020.12.09 |
[ python ] 사주사용되는 함수/라이브러리 정리 (0) | 2020.12.07 |