【发布时间】:2011-04-17 13:25:44
【问题描述】:
我需要获取屏幕上或活动窗口中某些像素的颜色,我需要这样做快速。我试过使用 win32gui 和 ctypes/windll,但它们太慢了。这些程序中的每一个都获得 100 像素的颜色:
import win32gui
import time
time.clock()
for y in range(0, 100, 10):
for x in range(0, 100, 10):
color = win32gui.GetPixel(win32gui.GetDC(win32gui.GetActiveWindow()), x , y)
print(time.clock())
和
from ctypes import windll
import time
time.clock()
hdc = windll.user32.GetDC(0)
for y in range(0, 100, 10):
for x in range(0, 100, 10):
color = windll.gdi32.GetPixel(hdc, x, y)
print(time.clock())
每个都需要大约 1.75 秒。我需要这样的程序花费不到 0.1 秒。是什么让它这么慢?
我正在使用 Python 3.x 和 Windows 7。如果您的解决方案需要我使用 Python 2.x,请将我链接到显示如何同时安装 Python 3.x 和 2.x 的文章。我看了看,但不知道该怎么做。
【问题讨论】:
标签: python windows-7 colors screen pixel