×

用MATLAB制作GIF格式动图资料下载

消耗积分:3 | 格式:pdf | 大小:338.69KB | 2021-03-27

分享资料个

今天就突然有了个有趣的想法,就折腾了这个“好玩”的东西,用MATLAB制作GIF格式的动图。

接下来简单介绍下程序,

就不具体解释其原理了,

主要就是想弄个有趣的,

给新年来个特殊的仪式。

整个实现流程分为以下三个步骤:

【1】找素材

这个就不需要教了吧,科学上网找自己需要的素材图片,最好用同样格式的图片,方便后续的批量处理,如果图片多了,可以对等下的代码做一定修改,弄成对应格式的批量处理。

【2】重命名

网上找的图片很显然名字都比较乱,如下所示:

为了方便图片处理和合成,于是对图片重新命名,程序如下:

files=dir('.\素材\*.png');%获取素材路径下png格式的图片for i=1:numel(files)%对全部图片重命名 old_name=files(i).name;%获取原名 Image=imread(['.\素材\' old_name]);%导入图片数据 new_name=strcat(num2str(i),'.jpg');%生成新名 imwrite(Image,['.\' new_name],'jpg');%重新写入并生成新图 end

运行完脚本后,就会在程序的当前路径下看到有序的图片,且后缀名原为.png的也修改成了jpg的格式。


【3】修改图片信息并合成GIF动图

图片素材整理好了,就可以开始动图的制作了,不过查看图片信息,可以看到图片的分辨率不一致


如果直接合成的话,将会导致图片丢失要表达的信息,所以在合成之前还需要做分辨率修改的操作,为了方便,就直接与合成程序写在了一起,程序如下:

files=dir('.\*.jpg');%当前路径number=numel(files);%获取jpg文件的数量for i=1:number str=strcat(num2str(i),'.jpg') ;%获取文件名 Image=imread(str);%读取图片 [X,map]=rgb2ind(Image,256);%获取图片信息   [X2, newmap] = imresize(X,map,'OutputSize',[500 500]);%修改图片分辨率,新分辨率为500x500,图片如果长宽比例相差太多,会变形 if(i==1) imwrite(X2,newmap,'新年快乐.gif','delaytime',0.5,'loopcount',inf);%写入第一幅  else imwrite(X2,newmap,'新年快乐.gif','delaytime',0.5,'writemode','append');%往动图中添加图片 endend

运行完成后,在文件夹内可以看到,gif生成了,效果如下


(mbbeetchina)

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !