将图片序列保存为GIF文件


将图片序列如 01.jpg 02.jpg 03.jpg... 保存GIF是什么原理 多个JPG文件 合并成一个GIF文件 写入

 
uses Vcl.Imaging.GIFImg, Vcl.Imaging.pngimage;
{$R *.dfm}
 
procedure TForm1.Button1Click(Sender: TObject);
var
  Bmp: TBitmap;
 
  Png: TPngImage;
  Gif: TGIFImage;
  i, j: Integer;
begin
  Bmp := TBitmap.Create;
  Gif := TGIFImage.Create;
  try
 
    // Bmp.LoadFromFile('img0.bmp');
    // Bmp.Transparent := True;
    // Gif.Add(Bmp);
//    Bmp.LoadFromFile('01.bmp');
//    Bmp.Transparent := True;
//    Gif.Add(Bmp);
//    Bmp.LoadFromFile('02.bmp');
//    Bmp.Transparent := True;
//    Gif.Add(Bmp);
//    Bmp.LoadFromFile('03.bmp');
//    Bmp.Transparent := True;
//    Gif.Add(Bmp);
 
    Png := TPngImage.Create;
    for i := 0 to 159 do
    begin
      Png.LoadFromFile(Format( '%d.png', [i]));
      Png.Transparent :=True;
      Gif.Add(Png);
    end;
 
    // for i := 0 to Gif.Images.Count - 1 do
    // for j := 0 to Gif.Images[i].Extensions.Count - 1 do
    // if Gif.Images[i].Extensions[j] is TGIFGraphicControlExtension then
    // TGIFGraphicControlExtension(Gif.Images[i].Extensions[j]).Disposal :=
    // dmBackground;
 
    // add netscape loop if we want animation to keep repeating
    TGIFAppExtNSLoop.Create(Gif.Images.Frames[ 0]).Loops := 0;
    Gif.Pack;
    Gif.SaveToFile( 'test.gif');
  finally
    Bmp.Free;
    Gif.Free;
  end;
end;








你可能感兴趣的:(gif)