将图片序列保存为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;








转载于:https://www.cnblogs.com/xe2011/p/3876040.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值