将图片序列如 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;
|