JPG to GIF animation

207 Views Asked by At

I am using this code for conversion of JPGs to GIF animation. It works but produces strange colors (first and second picture in animation have incorrect colors and third is OK). I would like to ask you to hep with correction of the code.

clear
clc
%// Image source: http:\\giantbomb.com
[A,map] = rgb2ind(imread('obr_0.jpg'),256);
[B,map] = rgb2ind(imread('obr_01.jpg'),256);
[C,map] = rgb2ind(imread('obr_99.jpg'),256);
ImageCell = {A;B;C};
%// Just to show what the images look like (I removed spots to make sure there was an animation created):
%// Create file name.
FileName = 'test.gif';
for k = 1:numel(ImageCell)
    
    if k ==1
        
        %// For 1st image, start the 'LoopCount'.
        imwrite(ImageCell{k},map,FileName,'gif','LoopCount',Inf,'DelayTime',1);
    else
        imwrite(ImageCell{k},map,FileName,'gif','WriteMode','append','DelayTime',1);
    end
    
end

BR Michal

1

There are 1 best solutions below

0
X Zhang On

Can you try this?

clear
clc
%// Image source: http:\\giantbomb.com
[A,map] = rgb2ind(imread('obr_0.jpg'),256);
[B,~] = rgb2ind(imread('obr_01.jpg'),map);
[C,~] = rgb2ind(imread('obr_99.jpg'),map);
ImageCell = {A;B;C};
%// Just to show what the images look like (I removed spots to make sure there was an animation created):
%// Create file name.
FileName = 'test.gif';
for k = 1:numel(ImageCell)
    
    if k ==1
        
        %// For 1st image, start the 'LoopCount'.
        imwrite(ImageCell{k},map,FileName,'gif','LoopCount',Inf,'DelayTime',1);
    else
        imwrite(ImageCell{k},map,FileName,'gif','WriteMode','append','DelayTime',1);
    end
    
end