Delphi7多线程安全的GifImage处理程序

GifImage多线程运行时,经常产生异常。因此特别做了特殊的判断和处理。在调用时,需要特别注意。

var  
  gif: TGifImage;  
  image: TImage;  
  aFileName: String; // 图片文件名称  
begin  
  ....  
  gif := TGIFImage.Create;  
  try  
    gif.LoadFromFile(aFileName);  
    image.Picture.Assign(gif.Bitmap);  
    gif.AnimationSpeed := 200;  
    gif.Animate := true; // 设置为动画,这样才能有动画效果  
    // 需要加上这个,否则,会出现Out of System Resource  
    if image.Picture.Graphic.Palette <> 0 then  
    begin  
      DeleteObject(image.Picture.Graphic.Palette);  
      image.Picture.Graphic.Palette := 0;  
    end;  
    // 注意:这个是关键(没有用Assign),新产生的对象拷贝了原来的Gif信息  
    image.Picture.Graphic := gif;  
  finally  
    if Assigned(gif) then FreeAndNil(gif); // 注意:释放了gif的对象资源  
  end;  
pas 文件大小:374.7KB