繁体   English   中英

用Python将屏幕录制成GIF

[英]Record screen with Python into GIF

这会记录屏幕左上角 300x300px 正方形的 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可以imageio 如果没有,有没有办法手动完成?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM