상세 컨텐츠

본문 제목

[파이썬] 화면 캡쳐 스크린샷 찍기

코딩

by 땡감 2022. 11. 18. 13:36

본문

반응형

파이썬 관련 포스팅은 정말 오랜만이다.

이번에는 파이썬으로 스크린샷을 찍는 방법에 대해 알아보자.

내용이 너무 간단해 누구나 쉽게 따라 할 수 있을 것이다.

 

먼저 pyautogui 모듈을 설치해야 한다.

작성자의 경우 이미 설치가 되어 있기에 already라는 메시지들이 확인된다.

pip install pyautogui

 

pyautogui가 설치되어 있지 않다면 위처럼 정상적으로 설치가 이루어진다.

그럼 pyautogui 모듈로 스크린샷을 찍어 보도록하자.

pyautogui로 스크린샷을 찍는 방법은 총 4가지 존재한다.

  • 현재 화면의 전체 영역을 스크린샷으로 찍어 이미지 객체로 전달
  • 현재 화면의 전체 영역을 스크린샷으로 찍어 파일로 저장
  • 현재 화면의 지정한 영역을 스크린샷으로 찍어 이미지 객체로 전달
  • 현재 화면의 지정한 영역을 스크린샷으로 찍어 파일로 저장

 

코드를 살펴보면 단 한줄로 스크린샷 찍는것이 가능하다.

screenshot() 함수 호출을 통해 스크린샷을 찍고 전달되는 매개변수에 따라 그 결과값이 상이하다.

매개변수에 따른 차이는 아래와 같다.

  • 먼저 매개변수 없이 screenshot() 함수을 호출하면 전체 화면을 대상으로 스크린샷을 찍고 이미지 객체를 리턴한다.
  • screenshot() 함수에 파일명만 매개변수로 호출하면 전체 화면을 대상으로 스크린샷을 찍고 해당 경로로 파일로 저장한다.
  • screenshot() 함수에 영역관련 정보만 전달하면 해당 영역을 대상으로 스크린샷을 찍고 이미지 객체를 리턴한다.
  • screenshot() 함수에 파일명과, 영역관련 정보를 전달하면 해당 영역을 대상으로 스크린샷을 찍고 해당 결로로 파일로 저장한다.

조금 유의해야할 부분은 영역관련 정보를 전달하는 방법이다.

영역관련 정보는 region 이라는 값을 통해 전달해야 하는데 region 안에 들어가야할 값들은 총 4가지이다.

처음부터 살펴보면 x의 좌표의 시작지점, y좌표의 시작지점, 그리고 해당 지점을 기준으로 넓이와 높이이다.

위의 이미지의 4번째 호출방법을 예로 들면 화면의 (0.0) 좌표를 기준으로 오른쪽으로 100, 아래로 100 만큼의 영역을 대상으로 스크린샷을 찍고 파일로 저장한다는 의미이다.

   

실제 코드를 수행한 모습이다.

파일명을 전달하지 않는 2번의 screenshot() 함수 호출의 경우 별도의 파일이 생성되지 않았고

파일명을 전달한 2번의 screenshot() 함수 호출의 경우 지정된 영역을 스크린샷으로 찍고 파일로 생성되었다.

그럼 전체 소스 코드로 이번 포스팅을 마무리한다.

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)) #지정영역 스크린샷 찍고 파일로 저장
반응형

관련글 더보기

댓글 영역