繁体   English   中英

pywin32:使用坐标获取颜色

[英]pywin32: Get color by using coordinates

我编写了以下代码,以使鼠标在x,y位置100,200上单击,然后按下Backspace按钮:

import win32api, win32con
import time

def click(x,y):
    win32api.SetCursorPos((x,y))
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN,x,y,0,0)
    win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,x,y,0,0)

def press_back():
    win32api.keybd_event(0x08,0,0,0) #click backspace
    time.sleep(0.1)
    win32api.keybd_event(0x08,0,2,0) #release backspace

click(100,200)
press_back()

我现在要检查的是100,200处的颜色是否为红色。 我怎样才能做到这一点?

编辑:我有解决方案...

color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), 100 , 200)

不管怎么说,多谢拉

用你的答案

color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), 100 , 200)

您会得到一个整数,这对于像我这样的人可能并不十分友好。

如果需要RGB元组,可以检查以下答案: RGB Int to RGB-Python

def rgbint2rgbtuple(RGBint):
    blue =  RGBint & 255
    green = (RGBint >> 8) & 255
    red =   (RGBint >> 16) & 255
    return (red, green, blue)

最后,您可以检查颜色是否为红色,如果您还接受相似的颜色(不仅是红色)(即(255,0,0)),那将不是那么容易。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM