2016-12-05 53 views
1

最近我开始使用PIL和AutoPy一起工作来自动完成一些任务。 AutoPy需要的核心功能之一是其令人惊讶的快速(虽然有错误,但有fixes - 从源代码的构建和安装可能很烦人,如果你得到错误Unable to find vcvarsall.bat,只是谷歌它)。将PIL图像转换为自动位图?(并返回)

但是刚才我遇到了一个问题,我找不到解决办法。 PIL和AutoPy为截图使用基本不同的格式。对于AutoPy我不能让它与多个屏幕一起工作,但对于PIL我很容易。现在我需要将这些图像转换为AutoPy接受的格式 - 并在合理的时间内完成。

一个theoratically可能的解决方案:

def test(): Img = Image.open("example.png") Img.save("test.png") Img2.open("test.png")

通过我的测试中去,这大致需要大约0.5秒即可完成。远远超过了我需要的0.1秒。

+0

你有没有找到解决方案?我有完全一样的问题!如果你找到了解决方案,我希望你有时间分享它:-) – Vingtoft

回答

0

我在文档中找到了一个位图图像转换工具。

pil_im = Image.open("test.png") 
pil_im = pil_im.convert(mode ="1") 
#this is to prevent a value error in the tobitmap function 

pil_im = pil_im.tobitmap(im) 

我之前有一个类似的问题,其中pyautogui截图与最近打开的png不相同。 pil_im.copy()创建一个图像进行比较,没有所有的格式。

+0

非常感谢,我不需要这么做,而且你也只是晚了一点,我最终通过改变方式避开了这个问题capture_screen函数输出的图像在源中被裁剪的方式。但我已经知道这将在未来有用。 – JeWe37