正在学习GIFImage和GraphicEx,把学习心得放在这里与大家共享。
刚学些GIFImage的使用,初步解决了GIF动画显示,闪烁的问题,总结如下:
1、GIFImage.pas,可不用打包安装,只需要简单的把GIFImage.pas加入到Project中即可USES了。
2、要把Image1的Width、Height设置成GIF图片的实际大小,可减少闪烁的发生,或者Image1.Stretch := true;
3、把GIF文件Assign给Image时,注意以下语句的区别,一种只能得到静态的GIF图片。
Image1.Picture.Assign(myGif);//正确的Assign,可以得到GIF动画。
image1.Picture.Bitmap.Assign(myGif);//只能得到静态的GIF图片。
程序如下所示,在DELPHI7,TGIFImage2.2下测试通过。
uses GIFImage;
...
var
myGif:TGIFImage;
begin
myGif := TGIFImage.Create;
myGif.LoadFromFile('e:/a.gif');
Image1.Width:=myGif.Width;
Image1.Height:=myGif.Height;
Image1.Picture.Assign(myGif);
myGif.Free;
end;
GraphicEx 9.9总结:
1、在GraphicEx9.9中,GIF格式默认是关闭的,需要打开。
方法是在GraphicConfiguration.inc文件中,找到
{.$define UseLZW}
修改成
{$define UseLZW}
2、将GraphicEx下的pas文件加入到例子中的project中,即可把例子重新编译,并支持GIF文件。(注意GraphicStrings.pas加入进去就行了。其它的DE,FR,RU就不要加了。)
使用GraphicEx 9.9,GIF不能显示动画,程序如下
uses
GraphicExe;
procedure TForm1.GraphiExClick(Sender: TObject);
var
myGif:TGIFGraphic;
begin
myGif := TGIFGraphic.Create;
if myGif.CanLoad('e:/a.gif') then
myGif.LoadFromFile('e:/a.gif');
image1.Picture.Assign(myGif);
myGif.Free;
end;