【发布时间】:2014-09-28 16:49:29
【问题描述】:
我使用 Desktopmagic https://pypi.python.org/pypi/Desktopmagic/14.3.11#downloads 使用以下代码使用python拍摄小(50px x 50px)屏幕截图:
from desktopmagic.screengrab_win32 import (
getDisplayRects, saveScreenToBmp, saveRectToBmp, getScreenAsImage,
getRectAsImage, getDisplaysAsImages)
def snap_shot(left_offset, top_offset, width, height, file_name):
right=left_offset+width
bottom=top_offset+height
saveRectToBmp(file_name, rect=(left_offset, top_offset, right, bottom))
我还使用 pillow 将屏幕截图与参考图像进行比较
from PIL import Image
def compare_images(f1,f2):
h1 = Image.open(f1).histogram()
h2 = Image.open(f2).histogram()
rms = math.sqrt(functools.reduce(operator.add,map(lambda a,b: (a-b)**2, h1, h2))/len(h1))
return rms
在我尝试将代码和参考图像迁移到新 PC 之前,一切正常。 在人眼看来,在 PC1 和 PC2 上截取的屏幕截图没有区别,但我的 compare_images 函数看到了区别。
在 PC1 上拍摄的参考图像和 PC2 上的屏幕截图之间寻找完全匹配时,测试失败。
那么.... 2 台 Windows 计算机如何以相同的方式呈现桌面窗口? 我假设如果它们是相同的硬件,屏幕截图将匹配 100%。但关键要素是什么?两者拥有相同的显卡就足够了吗?您认为哪些因素会起作用?
提前致谢
【问题讨论】:
标签: python windows screenshot pillow