2022. 11. 18. 13:46ㆍPython
파이썬 Pyautogui 모듈로 스크린샷 화면 캡쳐 하기
이번 포스팅엔 파이썬 pyautogui 모듈로 스크린샷을 찍는 방법에 대해 알아보자.
단 한줄로 내가 원하는 방식으로 스크린샷을 찍어 보도록 하자.
먼저 pyautogui 모듈을 설치해야 한다.
아래의 명령어로 설치가 가능하며 작성자의 경우 이미 설치가 되어 있으므로 already 메시지가 확인된다.
pip install pyautogui
pyautogui 모듈이 설치되어 있지 않았다면 빠르게 설치하도록 하자.
1분도 채 걸리지 않아 설치가 이루어진다.
그럼 pyautogui 모듈로 스크린샷을 찍어 보도록하자.
pyautogui로 스크린샷을 찍는 방법은 총 4가지 존재한다.
- 현재 화면의 전체 영역을 스크린샷으로 찍어 이미지 객체로 전달
- 현재 화면의 전체 영역을 스크린샷으로 찍어 파일로 저장
- 현재 화면의 지정한 영역을 스크린샷으로 찍어 이미지 객체로 전달
- 현재 화면의 지정한 영역을 스크린샷으로 찍어 파일로 저장
import pyautogui as p
dest = "C:/Users/root/Desktop/"
p.screenshot() #전체 화면 스크린샷 찍고 이미지 객체로 전달
p.screenshot(dest +"all.jpg") #전체 화면 스크린샷 찍고 파일로 저장
p.screenshot(region=(0, 0, 100, 100)) #지정영역 스크린샷 찍고 이미지 객체로 전달
p.screenshot(dest +"part.jpg", region=(0, 0, 100, 100)) #지정영역 스크린샷 찍고 파일로 저장
코드를 살펴보면 단 한줄로 스크린샷 찍는것이 가능하다.
screenshot() 함수 호출을 통해 스크린샷을 찍고 전달되는 매개변수에 따라 그 결과값이 상이하다.
매개변수에 따른 차이는 아래와 같다.
- 매개변수 없을 때 : 전체 화면을 대상으로 스크린샷을 찍고 이미지 객체를 리턴한다.
- 파일명만 전달 할 때 : 전체 화면을 대상으로 스크린샷을 찍고 해당 경로로 파일로 저장한다.
- 영역정보만 전달 할 때 : 해당 영역을 대상으로 스크린샷을 찍고 이미지 객체를 리턴한다.
- 파일명과 영역정보를 전달 할 때 : 해당 영역을 대상으로 스크린샷을 찍고 해당 결로로 파일로 저장한다.
조금 유의해야할 부분은 영역관련 정보를 전달하는 방법이다.
영역관련 정보는 region 이라는 값을 통해 전달해야 하는데 region 안에 들어가야할 값들은 총 4가지이다.
처음부터 살펴보면 x의 좌표의 시작지점, y좌표의 시작지점, 그리고 해당 지점을 기준으로 넓이와 높이이다.
예로 들어 region 값으로 (0,0,100,100)을 전달한다고 하면 화면의 (0.0) 좌표를 기준으로
오른쪽으로 100, 아래로 100 만큼의 영역을 대상으로 스크린샷을 찍고 파일로 저장한다는 의미이다.
실제 코드를 수행한 모습이다.
파일명을 전달하지 않는 2번의 screenshot() 함수 호출의 경우 별도의 파일이 생성되지 않았고
파일명을 전달한 2번의 screenshot() 함수 호출의 경우 지정된 영역을 스크린샷으로 찍고 파일로 생성되었다.
그럼 끝.
'Python' 카테고리의 다른 글
[리원아빠] 파이썬 텔레그램 get_updates 함수 오류 해결방법 (2) | 2022.11.21 |
---|---|
[리원아빠] 파이썬 텔레그램봇 자동응답 프로그램 (1) | 2022.11.21 |
[리원아빠] 파이썬으로 텔레그램 메시지 보내기 (2) | 2022.09.15 |
[리원아빠] 파이썬 티스토리 자동 포스팅 프로그램 (23) | 2022.08.31 |
[리원아빠] 파이썬 클라우드 개발 환경 만들기 (파이참 + 구글 드라이브) (6) | 2022.04.28 |