这记录了屏幕的300x300px左上角方格(每秒10帧)的5秒屏幕显示:
import time, numpy as np, pyautogui, imageio
t0 = time.time()
with imageio.get_writer('test.gif', mode='I', duration=0.1) as writer:
while True:
t1 = time.time()
img = pyautogui.screenshot(region=(0,0,300,300))
writer.append_data(np.array(img))
t2 = time.time()
time.sleep(0.1 - (t2 - t1))
if t2 - t0 > 5:
break它工作,但输出文件非常大(1.5MB,5秒,只有300x300px!)。有些程序(如ScreenToGif免费软件)能够通过检测连续帧中未经修改的像素来产生优化的GIF,然后可能需要50 KB,而不是1.5MB的文件。
如何使用Python生成这样一个优化的GIF?如果不使用imageio**;,是否有可能手动执行?**
发布于 2020-12-30 14:32:16
您可以使用mss模块。它更快。您可以检查类似的问题here,希望性能提高。
https://stackoverflow.com/questions/59603185
复制相似问题