2009-05-30 6 views
4
gif := TgifImage.Create; 
gif.Width := 100; 
gif.Height := 100; 
gif.AnimationSpeed := 500; 
gif.Animate := true; 
gif.add(image1.Picture.Bitmap); 
gif.add(image2.Picture.Bitmap); 
gif.add(image3.Picture.Bitmap); 
gif.SaveToFile('gif.gif'); 

このループは1回だけで、速度は500ではありませんか?delphi 2009でgifアニメーションファイルを作成しますか?

ループを作成して速度を設定するにはどうすればよいですか?

答えて

-1

少なくともタイマーとフリッカーフリーのメソッドが必要です。

RXLibrary からのユニットrxAnimate.pasの例を参照してください(SourceForge.netまたはhttp://www.dummzeuch.de/delphi/english.htmlのソース)。

JVCLにも同様のコンポーネントのソースがあります。

+0

Oups .. .sorry。私はそれがTGifImageであるとは思わなかった。私はgifアニメーションコンポーネントを作成します。 – volvox

6

オリジナルのTGIFImageを書いたAnders Melanderは、次のようになります。answer

GIFの最初のフレームに「Netscape Loop」拡張ブロックを追加する必要があります。 ループブロックは、フレーム用に定義した最初の拡張である必要があります。そうでないと、ループブロックは機能しません。

アニメーションGIFを作成する方法の例については、Animate demoを参照してください。ここで

Animate demoからのコードの抜粋です:

// Add the source image to the animation 
Result := GIF.Add(Source); 

// Netscape Loop extension must be the first extension in the first frame! 
if (GIF.Images.Count = 1) then 
begin 
    LoopExt := TGIFAppExtNSLoop.Create(Result); 
    LoopExt.Loops := 0; // Number of loops (0 = forever) 
end; 

あなたはTGIFImage documentation hereを表示することができます。

+0

明確にするために、 'LoopExt'のタイプを指定する必要があります。 –

2
var Gif:TGifImage; 
begin 
    //Setting the delay for each frame 
    TGIFGraphicControlExtension.Create(Gif.Add(image1.Picture.Bitmap)).Delay := 300; 
    TGIFGraphicControlExtension.Create(Gif.Add(image2.Picture.Bitmap)).Delay := 300; 
    TGIFGraphicControlExtension.Create(Gif.Add(image3.Picture.Bitmap)).Delay := 300; 
    //Adding loop extension in the first frame (0 = forever) 
    TGIFAppExtNSLoop.Create(Gif.Images.Frames[0]).Loops := 0; 

    Gif.SaveToFile('gif.gif'); 
end; 
+0

+1。私はこのスタイルが本当に好きです。 –

+1

...私はそれが壊れていることがわかるまで。明らかに、最初のGCEの前にNSループを挿入する必要があります。 http://stackoverflow.com/a/25480538/282848をご覧ください。 –

1

あなたがSEアニメーションGIFを作成する方法の例は、私のホームページwww.tolderlund.eu/delphi/ に元TGIFImageは、Delphi 5用とDelphi 6、デルファイ7、デルファイのためもありますすることができます2005、Delphi 2006、Delphi 2007、Delphi 2009.

関連する問題