【enter回车键~笔记】获取屏幕指定坐标的颜色

# 获取屏幕上某个坐标的颜色
from ctypes import *  
 
def get_color(x, y):
    gdi32 = windll.gdi32
    user32 = windll.user32
    # 获取颜色值
    hdc = user32.GetDC(None)
    # 提取RGB值
    pixel = gdi32.GetPixel(hdc, x, y)  
    r = pixel & 0x0000ff
    g = (pixel & 0x00ff00) >> 8
    b = pixel >> 16
    return [r, g, b]

print(get_color(0, 0))

运行结果

[104, 140, 192]

函数说明

GetDC函数根据指定的等级类型检索指定窗口普通的、典型的或特有的设备上下文环境。
对于普通设备上下文环境,GetDC在每次检索的时候部分分配给它缺省特性,对于典型和特有的设备上下文环境,GetDC不改变先前设置的特性。
在使用普通设备上下文环境绘图之后,必须调用ReleaseDc函数释放该设备上下文环境,典型和特有设备上下文环境不需要释放,设备上下文环境的个数仅受有效内存的限制。
还有一点要特别注意,getdc函数对系统的相对开销比较大,如果你的程序里使用了几百个getdc函数而又不通过ReleaseDC函数释放的话,那你机器运行速度将是龟速。
GetPixel,函数功能,该函数检索指定坐标点的像素的RGB颜色值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值