python 공부/매크로 만들기

[파이썬 매크로 만들기] #05. 화면 색깔 인식하기

피치피치어피치♥ 2021. 8. 9. 21:19

<초보코딩님 유투브로 공부하며 정리하였습니다>

 

  • 빛의 3원색 (RGB)
    - 모든 빛의 색은 빨/초/파를 섞어서 나타낼 수 있으며, 
    - 모든 값을 섞으면 흰색이 되고
    - 하나도 섞지 않으면 검은색이 됨
    • 빨간색의 RGB 값은 (255, 0, 0)
    • 초록색 = (0, 255, 0)
    • 파란색 = (0, 0, 255)
    • 흰색 = (255, 255, 255)
    • 검은색 = (0, 0, 0)

 

수행할 내용

1. 현재 화면을 스크린샷해서,

2. 원하는 위치의 좌표를 뽑고 

3. 그 좌표의 rgb값 뽑기

 

 

1. 스크린샷을 하기 위해, pillow 패키지 안에 있는 ImageGrab 기능을 사용하기 위해 pillow 패키지 설치 

pip install pillow
from PIL import ImageGrab

pillow package에서 가져올 때는 대문자로 PIL을 사용해야 함

 

screen = ImageGrab.grab()

스크린샷해서, screen 변수에 저장해놓고

 

 

2. 원하는 위치의 좌표 뽑기 

import pyautogui as pag

pos = pag.position()
print(pos)

 

3. 그 좌표의 rgb값 뽑기 

screen.getpixel(pos)

 

4. 현재 커서가 가리키는 곳의 rgb 값이 어떤 값인지 출력하기

#red / green / blue pre-define
red = (255,0,0)
green = (0,255,0)
blue = (0,0,255)

#screen-shot
screen = ImageGrab.grab()

#get current position and rgb
pos = pag.position()
rgb = screen.getpixel(pos)

if rgb == red : print("red")
elif rgb == green : print("green")
elif rgb == blue : print("blue")
else : print("알 수 없음")

 

5. 함수화 시킬 수도 있음

def color_def() : 
  #red / green / blue pre-define
  red = (255,0,0)
  green = (0,255,0)
  blue = (0,0,255)

  #screen-shot
  screen = ImageGrab.grab()

  #get current position and rgb
  pos = pag.position()
  rgb = screen.getpixel(pos)

  if rgb == red : print("red")
  elif rgb == green : print("green")
  elif rgb == blue : print("blue")
  else : print("알 수 없음")

 

그리고나서 위 함수를 호출만 하면 수행됨 

color_def()