3

这记录了屏幕左上角 300x300 像素正方形的 5 秒截屏视频(每秒 10 帧):

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.5 MB 5 秒,只有 300x300 像素!)。一些程序(例如 ScreenToGif 免费软件)能够通过检测连续帧中未修改的像素来生成优化的 GIF ,然后对于同一文件可能需要 50 KB 而不是 1.5 MB。

如何用 Python 制作出如此优化的 GIF?有可能吗imageio?如果没有,有没有办法手动完成?

4

1 回答 1

0

您可以使用该mss模块。它更快。你可以在这里查看类似的问题,希望性能提高。

于 2020-12-30T14:32:16.523 回答