比较python中的光标图标位图

比较python中的光标图标位图,python,python-3.x,windows,winapi,bitmap,Python,Python 3.x,Windows,Winapi,Bitmap,我想通过比较位图来检查光标图标是否已更改 到目前为止,我已经尝试了下面的代码片段,但它不能正常工作 导入win32api、win32con、win32gui、win32ui info=win32gui.GetCursorInfo() hdc=win32ui.CreateDCFromHandle(win32gui.GetDC(0)) hbmp=win32ui.CreateBitmap() hbmp.CreateCompatibleBitmap(hdc,35,35) hdc=hdc.CreateCo

我想通过比较位图来检查光标图标是否已更改

到目前为止,我已经尝试了下面的代码片段,但它不能正常工作

导入win32api、win32con、win32gui、win32ui
info=win32gui.GetCursorInfo()
hdc=win32ui.CreateDCFromHandle(win32gui.GetDC(0))
hbmp=win32ui.CreateBitmap()
hbmp.CreateCompatibleBitmap(hdc,35,35)
hdc=hdc.CreateCompatibleDC()
hdc.DrawIcon((0,0),信息[1])
hbmp.SaveBitmapFile(hdc,'icon.bmp')

这段代码只生成一个黑色矩形位图(大部分在internet上找到)。一般来说,我不想保存位图,只想将这两个位图作为图像与pillow进行比较,但我不知道如何进行比较。

创建内存DC和内存位图后,使用
选择Object
将内存位图选择到内存DC中。只有这样位图才能工作

修改代码:

import win32api, win32con, win32gui, win32ui

info = win32gui.GetCursorInfo()
hdc = win32ui.CreateDCFromHandle(win32gui.GetDC(0))
hbmp = win32ui.CreateBitmap()
hbmp.CreateCompatibleBitmap(hdc, 35, 35)
hdc = hdc.CreateCompatibleDC()
hdc.SelectObject(hbmp)

hdc.DrawIcon((0,0), info[1])
hbmp.SaveBitmapFile(hdc, 'icon.bmp')

win32gui.DestroyIcon(info[1])
win32gui.DeleteObject(hbmp.GetHandle())
hdc.DeleteDC()
当不再需要位图时,调用
DeleteObject
函数将其删除

类似的操作适用于光标和内存DC释放