使用gifimage单元,如何把已有的图片做成gif动画? 使用gifimage单元,如何把已有的图片做成gif动画?谢谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 本人不赞成用TgifImage 太大了,而且不稳定有时图像不能正常显示。我在一次设计中也用过 后来我用,FlashMX 打开gif然后导出影片 选择bmp图像系列,在delphi里用ImageList把所有的图片加进来,加个Image 控件,加个Timer控件 申请 bitmap:TBitmap;//用全局变量imageIndex:Integer;//当前的图像素引值//in create form eventbitmap:=Tbitmap.Careat;imageIndex:=0;procedure TForm1.Timer1Timer(Sender: TObject);begin inc(imageIndex); if imageIndex>24 then imageIndex:=0; self.ImageList1.GetBitmap(imageIndex,bitmap); self.Image1.Picture.Assign(bitmap);end;这样的程序应为有很多Bitmap所以会比较大,但是用ASPACK压缩EXE之后比 用TgifImage的小得多try 一 try 用function TForm1.MultibmpTogif: Boolean;var GIF : TGIFImage; i : integer; OptimizeOptions : TGIFOptimizeOptions; gr: TGraphic; BitMap : TBitmap; Image1,Image2,Image3,image4 : TImage; function TransparentIndex(GIF: TGIFSubImage): byte; begin Result := GIF.Pixels[0, GIF.Height-1]; end; function AddBitmap(GIF: TGIFImage; Source: TGraphic; Transparent: boolean): integer; var Ext : TGIFGraphicControlExtension; LoopExt : TGIFAppExtNSLoop; begin Result := GIF.Add(Source); if (Result = 0) then begin LoopExt := TGIFAppExtNSLoop.Create(GIF.Images[Result]); LoopExt.Loops := 0; // Number of loops (0 = forever) GIF.Images[Result].Extensions.Add(LoopExt); end; Ext := TGIFGraphicControlExtension.Create(GIF.Images[Result]); Ext.Delay := 100; // Animation delay (30 = 300 mS) if (Transparent) then begin Ext.Transparent := True; Ext.TransparentColorIndex := TransparentIndex(GIF.Images[Result]); end; GIF.Images[Result].Extensions.Add(Ext); end;begin Screen.Cursor := crHourGlass; try GIF := TGIFImage.Create; try Image1 := TImage.Create(nil); Image2 := TImage.Create(nil); Image3 := TImage.Create(nil); Image4 := TImage.Create(nil); image1.Picture.LoadFromFile('1.bmp'); image2.Picture.LoadFromFile('2.bmp'); image3.Picture.LoadFromFile('3.bmp'); image4.Picture.LoadFromFile('4.bmp'); AddBitmap(GIF,Image1.Picture.Graphic,False); AddBitmap(GIF,Image2.Picture.Graphic,False); AddBitmap(GIF,Image3.Picture.Graphic,False); AddBitmap(GIF,Image4.Picture.Graphic,False); Gif.SaveToFile('x.gif'); image7.Picture.Assign(gif); finally Image1.Free; Image2.Free; Image3.Free; Image4.Free; GIF.Free; end; finally Screen.Cursor := crDefault; end;end; Delphi 如何给printf和scanf类型的函数传递可变参数 找兼职DELPHI程序员~ 求网络开发高手指点. [求助]关于TSaveDialog的问题 数据集刷新问题,急!! 将delphi转换成c 高分求购简体繁体转源代码,有建议性的意见也好! 帮我看看下面的代码那里有问题! Borland 都出DELPHI 7 了竟然它的帮助还是用.hlp格式的,都什么年代了,是不是也太落伍了? 请问如何将jpg图片保存到oracle数据库中? 帮忙解决一下代码的疑问,谢谢! 呵呵,在天涯上跟了下帖,结果就有人找我做项目!大家说可信度怎么样?
我在一次设计中也用过 后来我用,FlashMX 打开gif然后导出影片 选择bmp图像系列,在delphi里用ImageList把所有的图片加进来,加个Image 控件,加个Timer控件 申请
bitmap:TBitmap;//用全局变量
imageIndex:Integer;//当前的图像素引值//in create form event
bitmap:=Tbitmap.Careat;
imageIndex:=0;procedure TForm1.Timer1Timer(Sender: TObject);
begin
inc(imageIndex);
if imageIndex>24 then imageIndex:=0;
self.ImageList1.GetBitmap(imageIndex,bitmap);
self.Image1.Picture.Assign(bitmap);
end;这样的程序应为有很多Bitmap所以会比较大,但是用ASPACK压缩EXE之后比 用TgifImage的小得多
try 一 try
var
GIF : TGIFImage;
i : integer;
OptimizeOptions : TGIFOptimizeOptions;
gr: TGraphic;
BitMap : TBitmap;
Image1,Image2,Image3,image4 : TImage;
function TransparentIndex(GIF: TGIFSubImage): byte;
begin Result := GIF.Pixels[0, GIF.Height-1];
end; function AddBitmap(GIF: TGIFImage; Source: TGraphic; Transparent: boolean): integer;
var
Ext : TGIFGraphicControlExtension;
LoopExt : TGIFAppExtNSLoop;
begin
Result := GIF.Add(Source);
if (Result = 0) then
begin
LoopExt := TGIFAppExtNSLoop.Create(GIF.Images[Result]);
LoopExt.Loops := 0; // Number of loops (0 = forever)
GIF.Images[Result].Extensions.Add(LoopExt);
end; Ext := TGIFGraphicControlExtension.Create(GIF.Images[Result]);
Ext.Delay := 100; // Animation delay (30 = 300 mS)
if (Transparent) then
begin
Ext.Transparent := True;
Ext.TransparentColorIndex := TransparentIndex(GIF.Images[Result]);
end;
GIF.Images[Result].Extensions.Add(Ext);
end;
begin Screen.Cursor := crHourGlass;
try GIF := TGIFImage.Create;
try Image1 := TImage.Create(nil);
Image2 := TImage.Create(nil);
Image3 := TImage.Create(nil);
Image4 := TImage.Create(nil); image1.Picture.LoadFromFile('1.bmp');
image2.Picture.LoadFromFile('2.bmp');
image3.Picture.LoadFromFile('3.bmp');
image4.Picture.LoadFromFile('4.bmp'); AddBitmap(GIF,Image1.Picture.Graphic,False);
AddBitmap(GIF,Image2.Picture.Graphic,False);
AddBitmap(GIF,Image3.Picture.Graphic,False);
AddBitmap(GIF,Image4.Picture.Graphic,False); Gif.SaveToFile('x.gif'); image7.Picture.Assign(gif);
finally
Image1.Free;
Image2.Free;
Image3.Free;
Image4.Free;
GIF.Free;
end; finally
Screen.Cursor := crDefault;
end;end;