日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python找色_python实现按键精灵找色点击功能教程,使用pywin32和Pillow库

發(fā)布時(shí)間:2024/9/19 python 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python找色_python实现按键精灵找色点击功能教程,使用pywin32和Pillow库 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python圖片處理模塊PIL(pillow)

pywin32的主要作用

1.捕獲窗口;

2.模擬鼠標(biāo)鍵盤動(dòng)作;

3.自動(dòng)獲取某路徑下文件列表;

4.PIL截屏功能

找色點(diǎn)擊功能思路:

抓取當(dāng)前屏幕快照,指定一個(gè)坐標(biāo)和顏色,如果坐標(biāo)的顏色符合,則點(diǎn)擊坐標(biāo).

1.抓取當(dāng)前屏幕快照ImageGrab.grab()返回一個(gè)模式為“RGB”的圖像.

2.方法im.load()返回一個(gè)用于讀取和修改像素的像素訪問對(duì)象

3.用pywin32操作鼠標(biāo)鍵盤

王者榮耀自動(dòng)刷冒險(xiǎn)模式源碼送上:

由于分辨率不同,要修改相應(yīng)坐標(biāo)和顏色才能正常在自己電腦上運(yùn)行

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))#與坐標(biāo)不同,這里0,0,1,1是一個(gè)像素,而坐標(biāo)是從0~1919的

pix = im.load()

return pix[x,y]

def DisplaySize():

return GetSystemMetrics(0), GetSystemMetrics(1) # Python獲取屏幕分辨率

def LeftClick(x, y): # 鼠標(biāo)左鍵點(diǎn)擊屏幕上的坐標(biāo)(x, y)

win32api.SetCursorPos((x, y)) # 鼠標(biāo)定位到坐標(biāo)(x, y)

# 注意:不同的屏幕分辨率會(huì)影響到鼠標(biāo)的定位,有需求的請(qǐng)用百分比換算

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0) # 鼠標(biāo)左鍵按下

win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) # 鼠標(biāo)左鍵彈起

# win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN + win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0) # 測(cè)試

def PressOnce(x): # 模擬鍵盤輸入一個(gè)按鍵的值,鍵碼: x

win32api.keybd_event(x, 0, 0, 0)

'''

# 測(cè)試

a, b = DisplaySize()

print(a,b)

LeftClick(30, 30) # 點(diǎn)擊

PressOnce(13) # Enter

PressOnce(9) # TAB

print(PilImage(80,546))

'''

# SetCursorPos', 'No error message is available' 用管理員身份運(yùn)行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經(jīng)驗(yàn),用時(shí)%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)

補(bǔ)充知識(shí):python批量將文件夾下所有圖片中一種顏色改變?yōu)殡S機(jī)顏色

說在前面

需求:有時(shí)需要將圖片中的一種顏色更改為另一種顏色,ps可以幫助我們完成這項(xiàng)任務(wù),但是如果存在若干張圖片,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):#文件夾下圖片數(shù)量

i = 1

j = 1

img = Image.open("C:/Users/Administrator/Desktop/aa/"+str(n)+".png")#讀取圖片

img = img.convert("RGB")

width = img.size[0]#長(zhǎng)度

height = img.size[1]#寬度

for i in range(0,width):#遍歷所有長(zhǎng)度的點(diǎn)

for j in range(0,height):#遍歷所有寬度的點(diǎn)

data = img.getpixel((i,j))#i,j表示像素點(diǎn)

if (data[0]==255 and data[1]==255 and data[2]==255):

m = random.randint(160,190)#取160-190的顏色隨機(jī)值

print("m=",m)

img.putpixel((i,j),(m,m,m))#顏色改變

img = img.convert("L")#把圖片轉(zhuǎn)成灰度圖

img.save("C:/Users/Administrator/Desktop/aa/"+str(n)+".png")#保存修改像素點(diǎn)后的圖片

錯(cuò)誤注意

這里需要圖片是RGB模式的,不能是L灰度圖像,不然會(huì)出現(xiàn)如下錯(cuò)誤:

TypeError: 'int' object is not subscriptable

隨機(jī)顏色

m = random.randint(160,190)#取160-190的顏色隨機(jī)值

print("m=",m)

img.putpixel((i,j),(m,m,m))#顏色改變

這里,是random設(shè)置隨機(jī)顏色值,在160-190之間變動(dòng),如果需要設(shè)定其他顏色值,可以改變動(dòng)范圍,或是將m設(shè)置成一個(gè)固定的常數(shù),那么代表固定的顏色值。

附:圖片黑白互換

對(duì)于二值圖,圖片中的黑白顏色可以通過python實(shí)現(xiàn)相互交換。

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))

#反轉(zhuǎn)

inverted_image = PIL.ImageOps.invert(image)

#保存圖片

inverted_image.save('C:/Users/Administrator/Desktop/bbb/'+str(i).zfill(6)+'.png')

結(jié)果

以上這篇python實(shí)現(xiàn)按鍵精靈找色點(diǎn)擊功能教程,使用pywin32和Pillow庫(kù)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持隨便開發(fā)網(wǎng)。

總結(jié)

以上是生活随笔為你收集整理的python找色_python实现按键精灵找色点击功能教程,使用pywin32和Pillow库的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。