#方法一,可以直接用
import pyautogui,time
class Pic():
def __init__(self):
pass
self.w,self.h = pyautogui.size()
def get_win(self,number_x=32,number_y=24):
#读取页面,记录rgb数据
tx = int(self.w/number_x)
ty = int(self.h/number_y)
img = pyautogui.screenshot()
with open("remake.csv", "w", encoding="utf-8") as f:
for x in range(number_x-1):
for y in range(number_y-1):
lx = (x + 1) * tx
ly = (y + 1) * ty
r,g,b = img.getpixel((lx,ly))
f.write("{},{},{},{},{},\n".format(lx,ly,r,g,b))
f.flush()
def _read_win(self,lis):
#传入坐标,rpg数据判断当前页面是否匹配
count = len(lis)
start_time = time.time()
while self.reading:
count_get = 0
print("正在匹配 = ing")
img = pyautogui.screenshot()
for i in lis:
# print(i)
li = i.split(",")
x,y,r,g,b = int(li[0]),int(li[1]),int(li[2]),int(li[3]),int(li[4])
# print('list',x,y,r,g,b)
# print(img.getpixel((x,y)))
# print(type(img.getpixel((x,y))))
# if pyautogui.pixelMatchesColor( x,y,(r,g,b)) :
if (r,g,b) == (img.getpixel((x,y))):
count_get += 1
print("匹配 = ",count_get)
if count_get >= 0.8 * count:
self.reading = False
end_time = time.time() - start_time
print("识别时间:",end_time)
break
def read_win(self):
self.reading = True
with open("remake.csv","r",encoding="utf-8") as f:
lis = f.readlines()
self._read_win(lis)
if __name__ == "__main__":
p = Pic()
start_time = time.time()
# p.get_win() #记录当前页面
#p.read_win() #识别当前页面
end_time = time.time() - start_time
print("需要的时间",end_time)#运行方法:需要先单独运行“记录当前页面”,运行完毕之后注释,再运行“识别当前页面”
版权声明:本文为weixin_56643005原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。