[英]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.