我正在尝试为我正在制作的透明 Tkinter 小部件添加模糊效果。
我用这条线使小部件部分透明(片段)
self.attributes("-alpha", 0.85)
为了添加我想要的效果,我需要获取小部件中每个像素的 RGB 值。看到小部件只是部分不透明,我不能使用.cget方法,因为它返回的是填充 RGB 值(部分透明之前的颜色),而不是实际的 RGB 值)。
我目前正在使用此功能(片段)
def get_pixel_colour(self, i_x, i_y):
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)
但是,对于我的目的来说,它太慢了。有没有更快的方法来获得像素颜色?
编辑:
如果 Python 太慢了,我也可以使用 C++。我只需要获取不同 x、y 坐标处像素的 RGB 值。