今天来分享一个非常实用的程序,用matlab制作gif图片。主要用于ppt答辩,这个程序可以实现整体快进、分段快进、每一帧的播放时间、截取图片序列的局部和图片大小压缩等功能。我根据制作gif图片所需的图片序列的来源,将本文分为两个部分。分别是用视频生成图片序列和手动生成图片序列。
1、视频生成图片序列
需求,我们需要某个视频中的一段甚至每帧中的局部生成一个gif图片在ppt中循环播放。这个视频可以是网上下载的也可以是自己录屏生成的。
此时,我们需要两个程序,一个是将视频分割成图片序列,另一个是用图片序列生成gif。
(1)将视频分割成图片序列videodiv.m
2、手动生成图片序列(以经典88行拓扑优化程序为例)
我们想要将程序模拟或者计算的过程记录下来并保存成gif图片在ppt上展示。下面通过两个例子说明。
经典的88行拓扑优化程序
第一步:先在前面加上生成存放图片序列的文件夹
第二步:在优化循环中加入存储图片序列的代码
这样运行优化程序时,每一迭代步的密度场都会依次存为图片序列。
3、用图片序列生成gif图片(注意gifgenerate.m要和图片序列在同一个文件夹下运行)
这个gifgenerate.m才是生成gif图片的关键程序,下面逐句介绍
第一部分:为了兼顾展示过程的完整性和播放速度,有时需要变速播放。将重点展示的片段慢镜头即可。本例中将需要用到的图片序列分为两段,start1——start2(播放速度step1)和start2——stepall2(播放速度step2),这里为了实现快进采用每隔step帧读一张图片。不需要变速播放时,将step1 = step2即可。
第二部分:截取局部进行制作,图片弹出后,拖拽鼠标选取目标区域后,双击目标区域即可。
第三部分:制作循环
效果展示:
拓扑优化过程整体:
截取局部进行制作:
最后还是附上本文程序的网盘链接:
链接:https://pan.baidu.com/s/1AzZho6ipNebg0kjaTJ1jSA
提取码:7d7v