Я пытаюсь добавить эффект размытия в прозрачный виджет Tkinter, который я создаю.
Я сделал виджет частично прозрачным с помощью этой строки (фрагмент)
self.attributes("-alpha", 0.85)
InЧтобы добавить желаемый эффект, мне нужно получить значения 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 ++.Мне просто нужно получить значения RGB пикселей в разных координатах x, y.