python 버튼 엘 프 색상 찾기 기능 튜 토리 얼 구현,pywin 32 와 Pillow 라 이브 러 리 사용
pywin 32 의 주요 역할
1.창 캡 처 하기;
2.마우스 키보드 동작 시 뮬 레이 션 하기;
3.특정한 경로 에서 파일 목록 을 자동 으로 가 져 옵 니 다.
4.PIL 캡 처 기능
색 찾기 클릭 기능 사고방식:
현재 화면 스냅 샷 을 캡 처 하고 좌표 와 색 을 지정 합 니 다.좌표 의 색 이 맞 으 면 좌 표를 클릭 합 니 다.
1.현재 화면 스냅 샷 ImageGrab.grab()을 캡 처 하여"RGB"모드 의 그림 을 되 돌려 줍 니 다.
2.방법 im.load()는 픽 셀 을 읽 고 수정 할 픽 셀 접근 대상 을 되 돌려 줍 니 다.
3.마우스 키 보드 를 pywin 32 로 조작
왕자의 영광 은 자동 으로 모험 모드 원본 을 제거 하여 드 립 니 다:
해상도 가 다 르 기 때문에 해당 좌표 와 색 을 수정 해 야 자신의 컴퓨터 에서 정상적으로 작 동 할 수 있다.
https://github.com/janyroo/pvpkey
import win32gui, win32api, win32con,time
from win32api import GetSystemMetrics
from PIL import ImageGrab
def PilImage(x,y):
a, b = GetSystemMetrics(0), GetSystemMetrics(1) # Python
im = ImageGrab.grab((0,0,a,b))# , 0,0,1,1 , 0~1919
pix = im.load()
return pix[x,y]
def DisplaySize():
return GetSystemMetrics(0), GetSystemMetrics(1) # Python
def LeftClick(x, y): # (x, y)
win32api.SetCursorPos((x, y)) # (x, y)
# : ,
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0) #
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) #
# win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN + win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) #
def PressOnce(x): # , : x
win32api.keybd_event(x, 0, 0, 0)
'''
#
a, b = DisplaySize()
print(a,b)
LeftClick(30, 30) #
PressOnce(13) # Enter
PressOnce(9) # TAB
print(PilImage(80,546))
'''
# SetCursorPos', 'No error message is available' pycharm
if __name__=="__main__":
jisu=0
ltime=0
ntime=0
time.sleep(5)
print(PilImage(875, 573))
print(PilImage(908,323))
print(PilImage(1050, 635))
print(PilImage(914,486))
while 1:
if PilImage(875, 573)==(220, 154, 39):
LeftClick(875, 573)
jisu += 1
ntime = time.time()-ltime
ltime = time.time()
print(" %d , %d , %d " % (jisu,jisu*82,ntime))
elif PilImage(908,323)==(26, 35, 101):
LeftClick(908,323)
elif PilImage(1050,635)==(216, 125, 26):
LeftClick(1050,635)
elif PilImage(1061,138)==(48, 131, 205):
LeftClick(1061,145)
elif PilImage(1061,138)==(46, 125, 197):
LeftClick(1061,145)
elif PilImage(914,486)==(196,39,80):
LeftClick(914,486)
else:
pass
time.sleep(5)
추가 지식:python 은 폴 더 아래 모든 그림 의 색상 을 무 작위 색상 으로 일괄 변경 합 니 다.앞에서 말 하 다
수요:그림 의 한 색 을 다른 색 으로 변경 해 야 할 때 가 있 습 니 다.ps 는 이 작업 을 완성 하 는 데 도움 을 줄 수 있 습 니 다.그러나 몇 장의 그림 이 존재 하면 ps 는 우리 의 수 요 를 만족 시 키 지 못 하고 python 으로 우리 가 신속하게 해결 할 수 있 도록 도와 야 합 니 다.
소스 코드
# -*- coding: utf-8 -*-
"""
Created on Sun Aug 26 20:03:10 2018
@author: Administrator
"""
from PIL import Image
import random
for n in range(1,4):#
i = 1
j = 1
img = Image.open("C:/Users/Administrator/Desktop/aa/"+str(n)+".png")#
img = img.convert("RGB")
width = img.size[0]#
height = img.size[1]#
for i in range(0,width):#
for j in range(0,height):#
data = img.getpixel((i,j))#i,j
if (data[0]==255 and data[1]==255 and data[2]==255):
m = random.randint(160,190)# 160-190
print("m=",m)
img.putpixel((i,j),(m,m,m))#
img = img.convert("L")#
img.save("C:/Users/Administrator/Desktop/aa/"+str(n)+".png")#
오류 주의RGB 모드 의 그림 이 필요 합 니 다.L 그 레이스 케 일 이미지 가 아 닙 니 다.그렇지 않 으 면 다음 과 같은 오류 가 발생 할 수 있 습 니 다.
TypeError: 'int' object is not subscriptable
4.567915.이 문 제 를 설 명 했 지만 주요 원인 은 그림 이 그 레이스 케 일 이미지 일 수 있 습 니 다.그러면 data 데이터 가 비어 서 RGB 색상 값 을 추출 하지 못 하고 프로그램 이 잘못 되 었 습 니 다.
무 작위 색상
m = random.randint(160,190)# 160-190
print("m=",m)
img.putpixel((i,j),(m,m,m))#
여 기 는 random 에서 무 작위 색상 값 을 설정 하여 160-190 사이 에 변동 합 니 다.다른 색상 값 을 설정 해 야 할 경우 움 직 이 는 범 위 를 바 꾸 거나 m 를 고정된 상수 로 설정 하면 고정된 색상 값 을 대표 합 니 다.첨부:흑백 교환
2 값 그림 의 흑백 색상 은 python 을 통 해 서로 교환 할 수 있 습 니 다.
from PIL import Image
import PIL.ImageOps
for i in range(1,37551):
#
image = Image.open('C:/Users/Administrator/Desktop/bbb/'+str(i).zfill(6)+'.png')
#image = image.resize((64,64))
#
inverted_image = PIL.ImageOps.invert(image)
#
inverted_image.save('C:/Users/Administrator/Desktop/bbb/'+str(i).zfill(6)+'.png')
결실이 python 은 버튼 엘 프 의 색상 찾기 기능 튜 토리 얼 을 실현 합 니 다.pywin 32 와 Pillow 라 이브 러 리 를 사용 하 는 것 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.참고 하 시기 바 랍 니 다.많은 응원 부탁드립니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.