我需要我的截图功能尽可能快,现在每次调用该功能大约需要 0.2 秒。
这是功能:
def get_screenshot(self, width, height):
image = self.screen_capture.grab(self.monitor)
image = Image.frombuffer('RGB', image.size, image.bgra, 'raw', 'BGRX')
image = image.resize((int(width), int(height)), Image.BICUBIC) # Resize to the size of 0.8 from original picture
image = np.array(image)
image = np.swapaxes(image, 0, 1)
# This code below supposed to replace each black color ([0,0,0]) to the color of [0,0,1]
# r1,g1,b1 = [0,0,0] and r2,g2,b2 = [0,0,1]
red, green, blue = image[:, :, 0], image[:, :, 1], image[:, :, 2]
mask = (red == r1) & (green == g1) & (blue == b1)
image[:, :, :3][mask] = [r2, g2, b2]
return image
您是否注意到我可以做任何更改以使该功能更快?
编辑:我忘记提及的一些细节:
我的屏幕尺寸是1920*1080
此功能是我目前正在进行的直播项目的一部分。Carlo 在下面建议的解决方案在这种情况下是不合适的,因为远程计算机不会与我们的计算机屏幕同步。