动画gif文件图像大小的调整 (100分)

  • 主题发起人 主题发起人 lvxq
  • 开始时间 开始时间
L

lvxq

Unregistered / Unconfirmed
GUEST, unregistred user!
加载gifImage后,改变单桢静止的gif尺寸,自然是没问题的.
现在想将一个多桢的gif文件,改变尺寸。俺想,那么把每一桢
的尺寸变一下,不就可以了么?然后就试。
下面的一大堆命令的好多种组合都试了,没成。
请大家帮忙!
procedure ChangeGifSize(sGifName:String;intW,intH:Integer;tGifName:String);
var
I,intCount:Integer;
mBMP:TBitmap;
mItem:TGifItem;
msItem:TGifSubImage;
sGif,tGif:TGifImage;
mGif:TGifImage;
begin
if Not FileExists(sGifName) Then
Exit;

sGif:=TGifImage.Create;
sGif.LoadFromFile(sGifName);
tGif:=TGifImage.Create;
//tGif.LoadFromFile(sGifName);
mBMP:=TBitmap.Create ;
For I:=1 to sGif.Images.Count do
Begin
//mItem:=TGifItem.Create(tGif);
mBMP.Assign(sGif.Images.SubImages[I-1].Bitmap);
//mBMP.SaveToFile('C:/aa/BMP'+IntToStr(I)+'.bmp');
mGif:=TGifImage.Create ;
mGif.Assign(mBMP);
//mBMP.Assign(sGif.Images.Items[I-1].Image);
//Here to Change mBMP's Size into [intW*intH] ;
// Size Change End
//mItem.Image.Assign(mBMP);
//tGif.Images.Add(mItem);
mItem:=TGifItem.Create(tGif);
msItem:=TGifSubImage.Create(tGif);
msItem.Image.Assign (mGif);
tGif.Images.Add(mItem);
tGif.Images.SubImages[I-1]:=msItem ;
//tGif.Images.SubImages[i-1].Assign(mBMP);
//sGif.Images.Items[I-1].Image
End;
mBMP.Free;
tGif.SaveToFile(tGifName);
tGif.Free;
sGif.Free;
End;
 
难道没人遇到过这种问题么?
 
呵呵,看了,也试过了.不熟悉
 
解決完了。
 
后退
顶部