c++ - 在 Python 或 C++ 中获取像素颜色的最快方法?

标签 c++ python tkinter pixel blur

我正在尝试为我正在制作的透明 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 值。

最佳答案

您可能希望看一下可以这样调用的 Python 图像库

import Image
im = Image.open("name_of_file.jpg")
list_of_pixels = list(im.getdata())
print list_of_pixels[0]

这将以 RGB 格式输出第一个像素,例如 (255,255,255) 它非常快,但我相信它永远不会打败 C++

关于c++ - 在 Python 或 C++ 中获取像素颜色的最快方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4836925/

相关文章:

c++ - Themida 的软件保护替代品

python - 在 C 中嵌入 Python : Error when attempting to call Python code in a C callback called by Python code

Python无法识别环境变量

python - 在引发 tkinter 框架之前,不会处理 tkinter 键盘中断

C++:如何通过删除多个元素来删除 "set"?

c++ - 为什么 argc 不是常量?

javascript - 单击带有 selenium 的 javascript 链接

python - 在 Tkinter 中更改 matplotlib 的导航工具栏大小

python - 从 Tkinter gui 更新 matplotlib imshow

c++ - OpenGL 3.3 光照产生了非常奇怪的变形