MATLAB实现将图片转化为gif格式的动画

MATLAB实现将图片转化为gif格式的动画

  gif格式的动画实质上就是连续播放一系列的图片来实现的。所以将图片连接起来保存到gif格式的文件中即可实现。
通用格式:

%% 保存为GIF格式
clear;
clc;
close all;

t = 0:0.5:10;   % 设置间隔

filename = 'test.gif';   % 打开或者创建一个gif文件

for i = 1:length(t)
    %%
    % 绘制图像或者读取图像
    %%
    % 写入gif过程
    CurrFrame = getframe;   % 获取像素,否则无法显示动画
    im = frame2im(CurrFrame);  
    [A,map] = rgb2ind(im,256);  % 将RGB图像转换为索引图像
	if i == 1
		imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',0.1);  % DelayTime表示写入的时间间隔
	else
		imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',0.1);
    end
end

简单示例:将红心保存为gif格式的图像。

%% 将小红心保存为GIF格式
clear;
clc;
close all;

t = 0:0.5:10;   % 设置间隔

filename = 'test.gif';   % 打开或者创建一个gif文件

for i = 1:length(t)
    
    % 动画效果
    c = (1+0.3*cos(2*t(i)));
    th=0: pi/50: pi;
    phi=0: pi/50:2* pi;
    [Th, Phi]=meshgrid(th, phi);
    X=0.9* abs(Th).* sin(Th).* cos(Phi)*c;
    Y=abs(Th).* sin(Th).* sin(Phi)*c;
    Z=abs(Th).* cos(Th)*c;
    surf(X,Y,Z)
    axis equal
    axis([-3 3 -3 3 -4 1]);
    shading interp
    colormap([1 0 0])
    light('Position',[2 1 2])
    
    % 写入gif过程
    CurrFrame = getframe;   % 获取像素,否则无法显示动画
    im = frame2im(CurrFrame);   % 
    [A,map] = rgb2ind(im,256);  % 将RGB图像转换为索引图像
	if i == 1
		imwrite(A,map,filename,'gif','LoopCount',Inf,'DelayTime',0.1);  % DelayTime表示写入的时间间隔
	else
		imwrite(A,map,filename,'gif','WriteMode','append','DelayTime',0.1);
    end
end

效果演示:
《MATLAB实现将图片转化为gif格式的动画》

    原文作者:黄其才_
    原文地址: https://blog.csdn.net/CHQC388/article/details/104590056
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞