相信大家对GIF图都不陌生,也十分的好奇如何制作GIF图。当然现在并不是教大家如何制作表情包,表情包大都是GIF图,这样的图片形象生动,不仅形象生动,而且富有感染力。那什么可以制作GIF图呢?这里我们用MATLAB就可以了。
具体的流程如下:
(1)先收集和制作足够多的图片。
(2)利用图片制作GIF图时只需要将图片按时间线联系起来就可以了。
调试代码,附带注释流程,注释的代码里面有错误代码,可以自行取消注释观察会出现什么样的错误,然后利用搜索引擎修改代码,如下:
close all; clear all; clc
%axis([0,4,0,4]);axis equal;
x=[1,2,3,1];y=[1,3,1,1];
%imgSets = imageSet(imgFolder, 'recursive');
%{
fig = figure;
%figure(1)
pause(3);
fill(x,y,'r');
saveas(gca,'1.jpg');
%figure(2)
pause(3);
fill(x,y,'b');
saveas(gca,'2.jpg');
%figure(3)
pause(3);
fill(x,y,'g');
saveas(gca,'3.jpg');
%figure(3)
pause(3);
fill(x,y,'o');
saveas(gca,'4.jpg');
%figure(3)
pause(3);
fill(x,y,'black');
saveas(gca,'5.jpg');
%}
%imgSets = imageSet('你的文件夹路径', 'recursive'); %其他方法
str = '1'+'.jpg'
for i = 1:5
str = [num2str(i),'.jpg'];
b = imread(str);
%B = imgSets(i);
%B.ImageLocation
%B.Count
%ind2gray(B,cm);
%[Im2,map2]= gray2ind(b,256); %GIF 文件不支持 3 维数据。数据必须为二维或四维。
[Im2,map2]= rgb2ind(b,256);
%写gif
if(i==1)
imwrite(Im2,map2,'movefig2.gif','DelayTime',0.1,'LoopCount',Inf)%第一帧
else
imwrite(Im2,map2,'movefig2.gif','WriteMode','append','DelayTime',0.1) %其余帧
end
end
%{
save("draw_triangle1.jpg",figure(1),"-jpg"),
figure(2)
pause(3);
fill(x,y,'b');
figure(3)
pause(3);
fill(x,y,'y');
%}
%save("triangle",axis,"gif");
前半段注释代码用于生成图片,后半段则是讲图片组合起来,请大家自行取消注释,并查看代码,不同颜色代表代码的不同区块。
实现的效果如下:
如有疑问,请您留言,感谢源代码提供者,此份功能是集合相关代码构成,如有侵权请私信告知。