软件中需要将大的gif图,裁减成小的。我能把每一帧取出来,但改变大小后放不回去。后来看代码发现取出来的Bitmap是临时生成的,无论怎么改,最初加载的图片是获取不到的。 AGIFImage := TGIFImage.Create;
try
AGIFImage.LoadFromFile(FileName);
NewWidth := round(AGIFImage.Width * 0.5);
NewHeight := round(AGIFImage.Height * 0.5);
for i := 0 to AGIFImage.Images.Count - 1 do
begin
OldBmp := AGIFImage.Images[i].Bitmap;
NewBmp := imgNewImage.Picture.Bitmap;
//进行截减 返回新的BITMAP
ZoomBmp(OldBmp, NewBmp, NewWidth, NewHeight);
AGIFImage.Images[i].Bitmap := NewBmp;
end;
AGIFImage.Width := NewWidth;
AGIFImage.Height := NewHeight;
AGIFImage.SaveToFile('c:\Temp.gif');
finally
if Assigned(AGIFImage) then
AGIFImage.Free;
end;
希望有这方面经验的指点一下。
try
AGIFImage.LoadFromFile(FileName);
NewWidth := round(AGIFImage.Width * 0.5);
NewHeight := round(AGIFImage.Height * 0.5);
for i := 0 to AGIFImage.Images.Count - 1 do
begin
OldBmp := AGIFImage.Images[i].Bitmap;
NewBmp := imgNewImage.Picture.Bitmap;
//进行截减 返回新的BITMAP
ZoomBmp(OldBmp, NewBmp, NewWidth, NewHeight);
AGIFImage.Images[i].Bitmap := NewBmp;
end;
AGIFImage.Width := NewWidth;
AGIFImage.Height := NewHeight;
AGIFImage.SaveToFile('c:\Temp.gif');
finally
if Assigned(AGIFImage) then
AGIFImage.Free;
end;
希望有这方面经验的指点一下。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货