python找色_python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Python圖片處理模塊PIL(pillow)
pywin32的主要作用
1.捕獲窗口;
2.模擬鼠標鍵盤動作;
3.自動獲取某路徑下文件列表;
4.PIL截屏功能
找色點擊功能思路:
抓取當前屏幕快照,指定一個坐標和顏色,如果坐標的顏色符合,則點擊坐標.
1.抓取當前屏幕快照ImageGrab.grab()返回一個模式為“RGB”的圖像.
2.方法im.load()返回一個用于讀取和修改像素的像素訪問對象
3.用pywin32操作鼠標鍵盤
王者榮耀自動刷冒險模式源碼送上:
由于分辨率不同,要修改相應坐標和顏色才能正常在自己電腦上運行
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
隨機顏色
m = random.randint(160,190)#取160-190的顏色隨機值
print("m=",m)
img.putpixel((i,j),(m,m,m))#顏色改變
這里,是random設置隨機顏色值,在160-190之間變動,如果需要設定其他顏色值,可以改變動范圍,或是將m設置成一個固定的常數,那么代表固定的顏色值。
附:圖片黑白互換
對于二值圖,圖片中的黑白顏色可以通過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實現按鍵精靈找色點擊功能教程,使用pywin32和Pillow庫就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持隨便開發網。
總結
以上是生活随笔為你收集整理的python找色_python实现按键精灵找色点击功能教程,使用pywin32和Pillow库的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 花费600元组的电脑主机组一个电脑主机需
- 下一篇: 如何更改word修改时间怎么更改word