最近我开始开发 WebViewer ,基本上是Web TeamViewer。我在python中编写后端。现在我到达了一个点,我只发送图像之间的像素差异,而不是使用PIL和FLASK发送整个图像。不幸的是,检查具有双周期的两个二维数组之间的差异似乎不是最快的解决方案。我想知道是否有更快的解决方案,比如知道首先改变图像的事件的触发位置。这是我目前正在使用的代码。我会给你任何有用的建议。在将我的问题确定为重复之后,我想强调这个事实,我需要知道两个图像之间的差异。我发现检查整个矩阵的差异是完全没用的。
global differences, img
img = ImageGrab.grab()
img = img.resize((int(img.width/2), int(img.height/2)), Image.ANTIALIAS)
b = img.load()
while True:
img1 = ImageGrab.grab()
img1 = img1.resize((int(img1.width/2), int(img1.height/2)), Image.ANTIALIAS)
c = img1.load()
for i in range(0, img.width):
for j in range(0, img.height):
if b[i,j] != c[i,j]:
foo = {
"i" : i,
"j" : j,
"val" : b[i,j]
}
differences.append(foo)
b[i, j] = c[i, j]