文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

怎么利用Python拍摄延时摄影

2023-06-29 18:05

关注

本文小编为大家详细介绍“怎么利用Python拍摄延时摄影”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么利用Python拍摄延时摄影”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

准备

开始之前,你要确保Python和pip已经成功安装在电脑上。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点。

请选择以下任一种方式输入命令安装依赖:

Windows 环境 打开 Cmd (开始-运行-CMD)。

MacOS 环境 打开 Terminal (command+空格输入Terminal)。

如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install moviepypip install pypiwin32pip install pillow

本文所有代码均开源在仓库

定时"拍摄"

为了实现定时拍摄的逻辑,我们需要用到pypiwin32模块和pillow模块,在之前的这篇文章中有介绍过:

超方便的 Python 自动唤醒窗口截图脚本

分为三个步骤:

获得游戏窗口界面

获得游戏界面大小

截图

每隔N秒定时循环执行以上三个步骤,代码如下:

# main.py# Python实用宝典# 2022-03-25import timeimport win32guifrom PIL import ImageGrabdef get_window_pos(name):    name = name    handle = win32gui.FindWindow(0, name)    if handle == 0:        return None    else:        return win32gui.GetWindowRect(handle), handlewhile True:    try:        (x1, y1, x2, y2), handle = get_window_pos('极限竞速:地平线 4')        win32gui.SetForegroundWindow(handle)        img_ready = ImageGrab.grab((x1, y1, x2, y2))        img_ready.save(f"./result/{time.time()}.jpg")        time.sleep(5)    except Exception as e:        print(e)

请注意,"极限竞速:地平线 4" 要改成你对应拍摄的游戏名称,这样,运行程序后就会自动在result文件夹下定时生成截图:

怎么利用Python拍摄延时摄影

成功截取你想要的时间段的场景图片后,就可以进行下面的拼接和补充背景音乐部分。

拼接延时摄影视频

为了达到延时摄影的效果,我们在这一部分中将使用moviepy模块,拼接所有图片到一个视频中。

当然还要补充背景音乐,代码其实非常简单,调用了部分moviepy模块的功能:

# jointer.py# Python实用宝典# 2022-03-25import osimport moviepyimport moviepy.video.io.ImageSequenceClipfrom moviepy.editor import *def pics2video(frames_dir, video_dst, music, fps=10):    """    图片合成MP4    Args:        frames_dir (str): 图片目录        video_dst (str): 目标目录        fps (int, optional): 帧数. Defaults to 25.    """    frames_name = sorted(os.listdir(frames_dir))    frames_path = [frames_dir+frame_name for frame_name in frames_name]    clip = moviepy.video.io.ImageSequenceClip.ImageSequenceClip(frames_path, fps=fps)        audio_clip = AudioFileClip(music).volumex(0.5)    audio = afx.audio_loop( audio_clip, duration=clip.duration)    final_video = clip.set_audio(audio)    final_video.write_videofile(video_dst, codec='libx264')music = '打上花火.mp3'frames_dir = './result/'video_dst = 'screenshots.mp4'pics2video(frames_dir, video_dst, music)

将你的音乐放在当前目录下,修改music变量为对应的文件名。

调整你想要的fps参数——帧数,这个值越低,画面越顺畅。

运行此文件后就会在当前文件夹下生成 'screenshots.mp4'. 这个就是我们的处理结果了,双击打开试试吧

读到这里,这篇“怎么利用Python拍摄延时摄影”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯