从背景中的窗口获取像素颜色

2024-05-16 13:40:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个特定的窗口中获取Python中特定像素的颜色,witch位于背景中,使用其X Y坐标,Iam使用Windows10。(当特定像素发生变化时,我正试图编写一个脚本,将窗口置于前面)

我试图修改下面的代码,但我无法从其他窗口获取信息,只能从屏幕获取信息

def get_pixel_colour(i_x, i_y):
    import win32gui
    i_desktop_window_id = win32gui.GetDesktopWindow()
    i_desktop_window_dc = win32gui.GetWindowDC(i_desktop_window_id)
    long_colour = win32gui.GetPixel(i_desktop_window_dc, i_x, i_y)
    i_colour = int(long_colour)
    return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)

print get_pixel_colour(0, 0)

Tags: idget颜色像素dcwindowlongiam
1条回答
网友
1楼 · 发布于 2024-05-16 13:40:04

我也有同样的问题,我创建了一个库来处理最小化的窗口,下面是完整的代码

https://github.com/mariobarbosa777/minwinpy/blob/master/minwinpy.py

您必须以管理员vs代码和“您的windows名称”的身份运行

要解决获取颜色像素的问题,请加载minwinpy.py并使用以下代码:

from minwinpy import minwinpy

#x, y pixel to get RGB color 
pos=[497,72]

WindowsName="Your windows name"
yourWindows= minwinpy(WindowsName)

print (yourWindows.GetPixelRGBColor(pos))

相关问题 更多 >