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

Posted

技术标签:

【中文标题】从背景中的窗口获取像素颜色【英文标题】:Get pixel color from window in background 【发布时间】:2020-02-24 14:18:47 【问题描述】:

我想在 Python 中获取特定像素的颜色,从特定窗口,女巫在背景中,使用它的 X Y 坐标,我使用 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)

【问题讨论】:

【参考方案1】:

我遇到了同样的问题,我创建了一个库来处理最小化的窗口,这里是完整的代码

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

您也必须以管理员 vs-code 和“您的 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))

【讨论】:

以上是关于从背景中的窗口获取像素颜色的主要内容,如果未能解决你的问题,请参考以下文章

从实时相机预览中获取特定像素的颜色 - Ionic

如何获取对话框/窗口的背景颜色?

获取并使用背景颜色在其他窗口中应用相同的颜色

iOS WKWebView 从点获取 RGBA 像素颜色

从相机意图中获取像素的颜色

从 selenium WebDriver 中的 src 获取背景颜色