MATLAB制作GIF,PHOTOSHOP制作GIF
gif动画易于制作,相对于视频更小,更易于传播。作为一个程序猿,在使用程序绘图过程中想生成gif动画,可以使用MATLAB生成。当然,MATLAB生成gif动画存在局限性,专业的PhotoShop可以满足你的需要,这篇博客将专门介绍gif动画的制作。
一、MATLAB生成GIF动画
二、PhotoShop制作GIF动画
1.打开PhotoShop
2.批量导入文件
3.打开时间轴,创建帧动画
4.从图层创建帧动画
5.帧反序
6.调节显示帧率、循环次数
7.生成动画
一、MATLAB生成GIF动画
代码比较简单,简单解释一下,如果详细了解matlab的gif生成控制,可以docimwrite就可以找到gif的文档了。
首先,第一帧,创建一个gif文件,Loopcount表示循环次数,DelayTime表示该帧的显示时间,单位是秒s;
然后,后续帧使用‘WriteMode’‘Append’的方式,添加在gif后面,并设置该帧的显示时间,然后gif动画就创建完成了;
还有一个参数,就是rgb2ind中设置的色彩级别,因为gif是压缩图像格式,这个地方设置的颜色级别就是调色板(颜色表)的大小,动画中所有的颜色都会用这张表中的颜色来近似。1
2
3
4
5
6
7
8
9
10
11forii=1:numel(img_files),
I=imread([img_pathimg_files{ii}]);
[Ig,map]=rgb2ind(I,256);%彩色级别
gif_file=[output_pathvideo'.gif'];
ifii==1%~exist(gif_file,'file')
imwrite(Ig,map,gif_file,'gif','Loopcount',inf,'DelayTime',0.02);
else
imwrite(Ig,map,gif_file,'gif','WriteMode','append','DelayTime',0.02);
end
end
Matlab生成小gif还可以,如果是大量,或者需要控制文件大小,压缩比,失真度之类的功能,那么Matlab必然不能满足你的要求,那么你就需要PhotoShop了。

二、PhotoShop制作GIF动画
我们使用的photoshopCC2017,如果你使用的是其它版本,那么整个流程只有一个区别,那就是,在PhotoShopCS6之前,该功能在窗口-动画里打开,而在该版本之后,该功能在窗口-时间轴中打开。我们来讲批量处理模式:
1.打开PhotoShop

2.批量导入文件

在这里,我们可以批量导入一个文件夹中的所有图片,我们事先按名称排好序,后面直接创建出按照该序列显示的动画。

3.打开时间轴,创建帧动画

在时间轴窗口,选择创建帧动画

4.从图层创建帧动画
在时间轴窗口上方有一个三角,会点开下图所示的小菜单,点击从图层创建帧就可以批量将图层中的帧导入成动画帧了。

5.帧反序
Shift加鼠标选择所有帧,还是在刚那么位置选择反向帧,因为添加过来是倒序的。
6.调节显示帧率、循环次数
在时间轴窗口最显眼的位置,当然你还可以通过图层来修改每个镇的动画内容,在右侧可以选择该帧中哪些图层是可见的,哪些图层是不可见的。
7.生成动画

这是最后一步,这里介绍下几个选项:
透明度,gif是由透明度的四通道图像,如果不想要该通道,可以去掉
颜色,就是颜色表的个数,颜色表越大,颜色越鲜艳,质量越好
损耗,损耗可以用来调节文件的大小,允许的损耗越大,就越容忍图像的失真,生成的动画也就越小
品质,缩放过程中,使用的插值方法,不直接影响文件大小,一般默认即可
循环,这里是和之前的循环次数对应的,我们可以选择播放的次数

最后,点击存储,就可以导出gif动画了