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

Python图片处理模块PIL(pillow)

pywin32的主要作用

1.捕获窗口;

2.模拟鼠标键盘动作;

3.自动获取某路径下文件列表;

4.PIL截屏功能

找色点击功能思路:

抓取当前屏幕快照,指定一个坐标和颜色,如果坐标的颜色符合,则点击坐标.

1.抓取当前屏幕快照ImageGrab.grab()返回一个模式为“RGB”的图像.

2.方法im.load()返回一个用于读取和修改像素的像素访问对象

3.用pywin32操作鼠标键盘

王者荣耀自动刷冒险模式源码送上

由于分辨率不同,要修改相应坐标和颜色才能正常在自己电脑上运行

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

https://stackoverflow.com/questions/8220702/error-int-object-is-not-subscriptable解释了这个问题,但是主要原因可能在于图片是灰度图像,那么data数据为空,不能提取到RGB颜色值,程序报错。

随机颜色

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库就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • Python实现windows下模拟按键和鼠标点击的方法

    本文实例讲述了Python实现windows下模拟按键和鼠标点击的方法.分享给大家供大家参考.具体如下: 这段代码可以模拟在窗口上按下按键.鼠标左键点击.鼠标右键点击.鼠标双击等等 # # _*_ coding:UTF-8 _*_ import win32api import win32con import win32gui from ctypes import * import time VK_CODE = { 'backspace':0x08, 'tab':0x09, 'clear':0x0

  • 如何使用Python自动控制windows桌面

    前言 在使用PC时与PC交互的主要途径是看屏幕显示.听声音,点击鼠标和敲键盘等等.在自动化办公的趋势下,繁琐的工作可以让程序自动完成.比如自动化测试.自动下单交易等.很多软件除了可以GUI方式操作外还可以用CLI接口操作,不过当一些软件未提供CLI接口时,我们应该怎么办呢?我们还可以用程序控制桌面上的窗口.模拟点击鼠标或按下键盘等动作来释放自己. pywin32是一个Python库,它为Python提供访问Windows API的扩展,提供了齐全的windows常量.接口.线程以及COM机制等等

  • Python3 pywin32模块安装的详细步骤

    python新手一枚,操作系统Win10 64 bit,Python版本,3.7 因为某个脚本需要用到win32con 和win32api模块,run --  cmd  ,使用easy_install pywin32 命令安装,提示错误,搜不到, 网上搜了下教程,分别用pip3 install pypiwin32  和python -m pip install pypiwin32 命令试了下,安装报错 (使用pip3 install pypiwin32 命令是下载pypiwin32-219.zi

  • python pillow模块使用方法详解

    pillow Pillow是PIL的一个派生分支,但如今已经发展成为比PIL本身更具活力的图像处理库.pillow可以说已经取代了PIL,将其封装成python的库(pip即可安装),且支持python2和python3,目前最新版本是3.0.0. Pillow的Github主页:https://github.com/python-pillow/Pillow Pillow的文档(对应版本v3.0.0): https://pillow.readthedocs.org/en/latest/handb

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

    Python图片处理模块PIL(pillow) pywin32的主要作用 1.捕获窗口: 2.模拟鼠标键盘动作: 3.自动获取某路径下文件列表: 4.PIL截屏功能 找色点击功能思路: 抓取当前屏幕快照,指定一个坐标和颜色,如果坐标的颜色符合,则点击坐标. 1.抓取当前屏幕快照ImageGrab.grab()返回一个模式为"RGB"的图像. 2.方法im.load()返回一个用于读取和修改像素的像素访问对象 3.用pywin32操作鼠标键盘 王者荣耀自动刷冒险模式源码送上: 由于分辨率

  • AutoIt3和按键精灵的功能对比第1/2页

    第一次用按键精灵是两三年前的事情了,现在硬盘上还保留着 2.65 版呢,也是因为要寻求比它更好的东西而结识了AutoIt,说实话,5.6版除了比2.65版花哨了一些之外,显著的功能增加并没有多少,跟这个版本号不大搭配 按键精灵和AutoIt是两个风格完全不一样的软件 从易用性上讲 按键精灵注重易用性,是傻瓜型的软件,一个完全没有编程基础的人一样可以用按键精灵编写出很好用的脚本 AutoIt更注重功能型,是脚本型的软件,对于没有写过程序的人来说,要能上手写AutoIt的脚本会稍微有点难度 按键精灵

  • 手把手教你用“按键精灵”图文教程

    如果你还为一些枯燥.繁琐的电脑操作而烦恼,按键精灵绝对会是你最好的帮手.    那么,按键精灵具体能帮我们干什么呢?我们来列举几个例子来说明下.    * 网络游戏中可作脚本实现自动打怪,自动补血,自动说话等:    * 办公族可用它自动处理表格.文档,自动收发邮件等:    * 任何你觉得"有点烦"的电脑操作都可以替你完成.     按键精灵第一个实现了"动动鼠标就可以制作出脚本"的功能.我们不希望为了使用一个小软件而去学习编程知识,考虑到这些,所以按键精灵完全界

  • “按键精灵” 轻松解放你的双手

    现代社会科技的发达,出现了越来越多的自动化设备来代替普通的人力劳动,这使得工作效率大大提高.那么,有没有什么设备或是软件,能够代替人的双手来自动化操作电脑呢?答案是肯定的,今天给大家介绍的这款"按键精灵"就是这样一款软件. 一.软件基本情况 软件大小:3.3MB 软件语言:简体中文 软件下载:http://on165.driversky.com/down/qm6chs_tk.exe 软件简介:严格的说这是一款模拟鼠标键盘动作的软件.通过制作脚本,可以让按键精灵代替您的双手,自动执行一系

  • 效率提升 用按键精灵实现系统宏录制

    笔者经常写一些稿件,写的过程中经常要用Hypersnap这样的截图软件截图,Hypersnap这个软件相信大家都很熟悉. 具体的截图过程很简单,把Hypersnap最小化到系统托盘中,当需要截图的时候按下系统自定义的快捷键"Ctrl+Shift+A"对活动窗口进行截图,软件把图像截下来之后,Hypersnap自动弹出窗口,展示已截下来的图片,然后点击主菜单中的"文件"--"另存为",选择好路径后保存下来,最后把窗口关闭. 以上的操作完全可以用键盘

  • 实用 按键精灵傻瓜应用实例3则

    按键精灵是一个用来模拟鼠标键盘动作的软件.通过制作脚本,可以让按键精灵代替您的双手,自动执行一系列鼠标键盘动作.按键精灵简单易用,不需要任何编程知识就可以作出功能强大的脚本.只要您在电脑前用双手可以完成的动作,按键精灵都可以替您完成. 今天笔者就通过非常傻瓜化的操作,来展示一下按键精灵的强大功能应用. 一. 自动登录QQ QQ(情趣).TM(图谋).MSN(美少女)是很多人每天打开电脑最先启动的软件(windows除外),手动双击图标.输入号码.密码.单击确定--一系列繁琐操作每天都要进行实在是

  • “按键精灵” 的使用教程之(工具命令生成器 )

    键盘动作 点击后会出现(图2)的界面.其中:⑴单个按键:按键:点击空白选框,然后按键盘上任意一个键来设置按键类型:分为"按键"."按下"."弹起"三种动作:"按键"动作其实就是"按下"与"弹起"的结合.执行次数:即按键的次数⑵按键组合:点击空白选框,然后按键盘上任意几个键的组合来设置按键(例如CTRL+ALT)设置完成后,只需要点击"插入",即可将设置好的按键指令写入

  • 墨香:按键精灵使用入门

    接触了墨香以后才开始接触按键精灵.以前玩传奇的时候,魔法盾啊,火墙啊,都是需要挂机练出来的(当时还基本上没有好用的外 挂,而且传奇里没有打坐回蓝),所以挂机练功用的办法就是卡键--拿个钥匙啊,硬币什么的,把键盘上那个功能键卡住,然后等 他自己长一点蓝再用一下魔法.而墨香里面人物回蓝基本上靠打坐而不是吃药(免去了买药的麻烦),所以用按键挂技能也就风行天 下,几乎无人不用,偶也在慢慢地摸索中学习了按键的用法. 初阶按键精灵使用:录制脚本,挂被动技能.这个很简单,按键带有一个录制功能,点击"录制&qu

  • JavaScript实现按键精灵的原理分析

    最近有个需求,需要在页面上面自动点击.输入.提交. 用以模拟真实用户的操作行为,可以通过直接执行某个元素绑定的事件,来执行操作. 也可以创建事件,再派发事件,执行操作.关于事件的更多细节,可以参考<JavaScript中事件处理> 1.模拟MouseEvent中的click事件,x与y位置随机点击 2.模拟TouchEvent中的touchstart和touchmove,用scroll来做滑动效果 3.模拟FocusEvent,聚焦到屏幕中的输入框内 一.鼠标事件MouseEvent Mous

  • 利用python编写一个图片主色转换的脚本

    前言 最近由于项目特需老是替换主题颜色,同时app里一些资源icon图片主色也要改,美工不提供切图只能靠自己了,开始想在iconfont上面找但是数量比较多太浪费时间,然后就想到python的Pillow在图像处理方便很强大. Pillow是Python里的图像处理库(PIL:Python Image Library),提供了了广泛的文件格式支持,强大的图像处理能力,主要包括图像储存.图像显示.格式转换以及基本的图像处理操作等. 本文就编写了一个批量替换图片主色的脚本changeImageCol

随机推荐