![432e8b6f7b7a8cb81a380b2d4d5e3c84.png](https://img-blog.csdnimg.cn/img_convert/432e8b6f7b7a8cb81a380b2d4d5e3c84.png)
GIF(Graphics Interchange Format),原义是“图像互换格式”,也是我们平时俗称的“动图格式”。GIF格式中存有多幅彩色图像,把存于一个文件中的多幅图像,按照一定速度逐幅读出并显示到屏幕上,就可构成一种最简单的动画。
这篇是为了解决一个日常遇到的问题:怎样利用ImageJ将一系列独立的图片组合并导出成GIF、AVI格式。反过来,如果有一个GIF和视频,怎么把它转成图片序列。
虽然有很多网站有GIF生成功能,但大多都有大小和长度限制,十分不方便。
ImageJ自带的基本功能,能够轻松地完成这一功能,而且不限制图片大小和时长。
例如怎么将下列50张连续的延时摄影图片:
![5d5ade89b93c805ec679f2e826e3b4cc.png](https://img-blog.csdnimg.cn/img_convert/5d5ade89b93c805ec679f2e826e3b4cc.png)
转换为下面的GIF动图或者视频:
![7b730240a79d05282edd76860a842eff.gif](https://img-blog.csdnimg.cn/img_convert/7b730240a79d05282edd76860a842eff.gif)
一、图片序列转GIF和视频
(1)导入图片序列,并组合成为一个Stack(Import -> Image Sequence)
将图片序列单独存在一个文件夹中,选中其中一张图片,然后打开:
![a7d7512876b1abd967a2535722349fec.png](https://img-blog.csdnimg.cn/img_convert/a7d7512876b1abd967a2535722349fec.png)
然后弹出Sequence Options窗口,这里可以选择导入的图片大小、类型以及数量。注意这里要勾选Use virtual stack,这样图片序列就自动组合成为一个stack。
![835e1e3480321d033df4d4cf00632ec7.png](https://img-blog.csdnimg.cn/img_convert/835e1e3480321d033df4d4cf00632ec7.png)
如果是一张一张拖入ImageJ而打开的,可以在(Image -> Stacks -> Images to Stack)中,将单独的图片组合成为一个Stack。
(2)设置动图导出参数(Image -> Stacks -> Animation -> Animation Options)
![06a1b5dd264067084d159be21cf000bc.png](https://img-blog.csdnimg.cn/img_convert/06a1b5dd264067084d159be21cf000bc.png)
这里的Speed,指每秒多少帧,可以根据实际的拍摄帧数设置。
如果觉得总帧数太多,而又不需要太高的流畅度,可以减少帧数(Image -> Stacks -> Tools -> Reduce)
![1337eb851136ec1c4854f74f126aacb5.png](https://img-blog.csdnimg.cn/img_convert/1337eb851136ec1c4854f74f126aacb5.png)
Reduction Factor指总帧数减少多少倍,例如当它为2时,即帧数减少为原来的一半。
(3)将Stack导出为动图-GIF、视频-AVI(File -> Save as)
![930750c29641ad5c46a742d008045e6b.png](https://img-blog.csdnimg.cn/img_convert/930750c29641ad5c46a742d008045e6b.png)
导出格式选择GIF即为动图、AVI即为视频。
二、GIF和视频转图片序列
反过来,如果有一个GIF和视频,怎么把它转成图片序列。
(1)GIF转图片序列
直接将GIF图片拖入ImageJ打开,ImageJ会自动将它变成一个Stack:
![4ab2b805329451f5497d627f18d46d86.png](https://img-blog.csdnimg.cn/img_convert/4ab2b805329451f5497d627f18d46d86.png)
可以利用(Image -> Stacks -> Stack to Images ) 或者Stack分离工具(Image -> Stacks -> Tools -> Stack Splitter),将Stack分解为图片序列后,再分别保存。
更简单的方法是直接(File -> Save as -> Image Sequence)
![270c86bac767cd0f653db6b9efc89703.png](https://img-blog.csdnimg.cn/img_convert/270c86bac767cd0f653db6b9efc89703.png)
设置导出图片格式,命名(Digits指命名的数字长度)、起点等,即可直接将Stack保存为图片序列。
(2)视频转图片序列
常用的视频格式有AVI和MP4格式,但ImageJ默认只支持AVI视频格式,如果想打开MP4格式的视频,需要下载FFMPEG插件,可以参考之前的一篇文章:
Treasure琛:ImageJ好玩技巧——徒手测心率zhuanlan.zhihu.com![6dea8f4c1ff1476fc92a80e7c95c2ea8.png](https://img-blog.csdnimg.cn/img_convert/6dea8f4c1ff1476fc92a80e7c95c2ea8.png)
导入视频后,ImageJ会自动将它变成一个Stack:
![eb145cf83dec1c7a1e109aca349cc2c2.png](https://img-blog.csdnimg.cn/img_convert/eb145cf83dec1c7a1e109aca349cc2c2.png)
后面的操作和上(1)相同。
学会了这一技巧,以后转GIF等格式,再也不用找各种网站或者软件啦~
如果对于ImageJ使用有什么问题可以私信我,或者给我发邮件:zhaoyc9@163.com
更多教程可以关注我的专栏:
ImageJ实用教程zhuanlan.zhihu.com![68139970671dbae804de6586360cf001.png](https://img-blog.csdnimg.cn/img_convert/68139970671dbae804de6586360cf001.png)
希望对大家有帮助~